Thema: Delphi Transparenz und CopyRect

Einzelnen Beitrag anzeigen

Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

Transparenz und CopyRect

  Alt 19. Jan 2010, 17:24
Werte Gemeinde!

Ich habe folgendes Problem bei der Nutzung von CopyRect: Die Transparenz von BMP2 geht verloren, wenn ich dessen Canvas auf BMP1 kopiere. D.h. nicht BMP2 verliert die Transparenz, sondern dessen Canvas, das auf BMP1 kopiert wird.
Vielleicht versteht man es so besser:

Delphi-Quellcode:
  BMP1 := TBitmap.CREATE;
  BMP1.PixelFormat := PF24BIT;

  // Zeichne auf Canvas von BMP1
  ...

  BMP2 := TBitmap.CREATE;
  BMP2.PixelFormat := PF24BIT;
  BMP2.Transparent := TRUE;
  BMP2.TransparentColor := ClWhite;
  BMP2.TransparentMode := tmFixed;

  // Zeichne auf Canvas von BMP2
  ...

  // Kopiere BMP2 auf BMP1 -- Transparenz?!
  BMP1.Canvas.CopyRect( Rect(0, 0, BMP1.Width, BMP1.Height),
                        BMP2.Canvas,
                        Rect(0, 0, BMP2.Width, BMP2.Height));
Ich sehe also die Zeichnung von BMP1 nicht mehr -- so, als ob ich für BMP2 keine Transparenz eingestellt hätte.
Kann es wohl sein, dass man bei der Verwendung von CopyRect die Transparenz des zu kopierenden Canvses verliert?

Wenn ja -- wie bekomme ich die transparente Zeichnung von BMP2 auf BMP1?

(Ich hoffe ich konnte mich verständlich ausdrücken -- wenn nicht, ich kann auch gern ein paar Bilder attachen, die es unmittelbar klar machen können).

Vielen Dank im voraus für jegliche Tipps/Hinweise
Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat