Einzelnen Beitrag anzeigen

ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#1

Zwei Transparente PNGs kombinieren

  Alt 29. Aug 2011, 11:03
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
Angehängte Grafiken
Dateityp: jpg test.jpg (1,2 KB, 32x aufgerufen)

Geändert von ddcool (29. Aug 2011 um 12:05 Uhr)
  Mit Zitat antworten Zitat