Einzelnen Beitrag anzeigen

Thebe

Registriert seit: 26. Jul 2004
Ort: Wedel
78 Beiträge
 
Delphi 6 Enterprise
 
#1

Auf 32Bit Canvas mit Alphawert zeichnen ?

  Alt 10. Mai 2005, 10:59
Hi!

Ich arbeite momentan mit 32bit Bitmaps die einen Alpha Channel haben. Nun hab ich leider das Problem, wenn ich mit den Standart TCanvas Zeichenoperationen zeichne (TextRect, Ellipse, FrameRect etc.), dann ist der Alpha Wert an den Stellen wo gezeichnet wurde grundsätzlich 0. Sprich wenn ich dann die Bitmap weiterbenutze um sie per AlphaBlendung woanders drauf zu zeichnen, sind diese Stellen grundsätzlich durchsichtig.

Ich hab schon probiert bei TColor das höchstwertige Byte dem Alpha Wert zuzuweisen, aber das höchstwertige Byte bei TColor ist ja leider für solche Sachen wie Paletten Optionen reserviert.

Nun ist die Frage wie ich das umgehen kann, das diese Stellen mir immer durchsichtig werden. Das Bitmap wo ich drauf zeichne kopieren und dann die alten Alphawerte gegenchecken bringt nichts, da ich auch an Stellen zeichnen möchte wo im original Bitmap schon der Alpha Wert 0 ist. Und die kompletten Proceduren selbst zu schreiben wird wohl oder übel ziemlich lange dauern und auch ziemlich langsam sein.

Habt ihr ne Ahnung was man da machen könnte ? Ich wollt eigentlich nur im extremen Notfall auf externe Units zugreifen.

Schon mal vielen Dank.

- Thebe
  Mit Zitat antworten Zitat