Hallo liebe DPler,
ich möchte gerne zwei PNGs, die beide transparente Bereiche enthalten miteinander kombinieren, so dass die Transparenz der beiden Bilder nicht addiert wird. Im Anhang ein Beispiel, welches genau das Problem aufzeigt. Der untere schwarze Kasten und der Verlaufeffekt sind das erste Bild, welches als Hintergrund benutzt wird. der obere Kasten ist das Bild, welches auf den Hintergrund gezeichnet wird.
Dazu benutzte ich folgende Methode:
Code:
TestImage := TPngImage.Create;
TestImage.Assign(TPngImage(imgBackground.Picture.Graphic));
TestImage.Canvas.Draw(20, 30, ImageList.ButtonImage);
...
TPngImage(imgBackground.Picture.Graphic).Assign(TestImage);
(ImageList.ButtonImage ist vom Typ TPngImage und wird zuvor mit einem PNG befüllt)
Eigentlich ist der obere Kasten (ButtonImage) eine gleichbleibend halb transparente schwarze Box, jedoch wird die Transparenz des Hintergrundes addiert, sodass das ButtonImage mit verblasst.
Gibt es eine Möglichkeit das zu verhindern, bzw das ButtonImage auf dem Hintergrund anders zu Zeichnen, sodass die korrekte Transparenz bestehen bleibt?
In
diesem Thread wird das ganze ansatzweise besprochen, jedoch möchte ich nicht jeden Pixel umrechnen müssen.
Danke für jede Hilfe!
Lieben Gruß,
ddcool