Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#14

Re: 32-Bit Farbe - Das letzte Byte missbrauchen?!

  Alt 24. Jan 2008, 12:42
Zitat von Neutral General:
Image1.Picture.Bitmap.Canvas.Brush.Color := $-->0A<--BBBBBB;
Ok, das war für mich so abwägig, dass ich dies gar nicht oben gesehen habe. Somit hat Medium natürlich vollkommen Recht. Du benutzt die Brush Color und das ist ein TColor und wird immer erst nach einer Umwandlung der dahinterliegenden WinAPI GDI Befehlen zugeführt. Diese Umwandlung sorgt sich um die Konstanten (clXXX) sowie um die Farbanpassung der Farbe an den Kontext. Dafür benötigt die VCL Informationen wie sie damit umzugehen hat und diese legt sie im TColor Typ im obersten Byte ab. Alle VCL TCanvas Funktionen werden dir niemals das 4. Byte in die ScanLine Informationen schreiben.

Afair geht die WinAPI GDI auch sträflich mit dem 4. Byte um und erst mit den GDI+ Funktion sind diese sorgsamer mit diesem Byte, weil es dort als AlphaKanal genutzt wird.

Kurzum: Du musst dein 4. Byte pro Pixel immer per Hand selbst beschreiben. Jede VCL Funktion wird die dort abgelegten Informationen zerstören.
  Mit Zitat antworten Zitat