Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Probleme mit Image Transparenz bei 24bit (https://www.delphipraxis.net/13127-probleme-mit-image-transparenz-bei-24bit.html)

Mario 11. Dez 2003 13:33


Probleme mit Image Transparenz bei 24bit
 
Hallo,

ich habe in meinem Form ein Image, dass ich als Statusanzeige wie folgt nutze:
Delphi-Quellcode:
   tmpBmp := TBitmap.Create;
   try
     if AllesOK
     then ImageListIcon.GetBitmap(idNotOK,tmpBmp)
     else ImageListIcon.GetBitmap(idOK  ,tmpBmp);
     ImageStatus.Picture.Bitmap := tmpBmp;
   finally
     tmpBmp.Free;
   end; // try
Bei 24bit-Farbtiefe sieht das Ergebnis OK aus und die Transparenz vom Image arbeitet auch. Nur bei 32 bit Farbtiefe arbeitet die Transparenz nicht richtig, um nicht zu sagen, gar nicht.

Hat jemand eine Idee, was ich anders machen könnte?

Alexander 11. Dez 2003 14:46

Re: Probleme mit Image Transparenz bei 24bit
 
Sicher das es nicht anders herum ist?
Das würde mir jetzt zumindest mein Verstand sagen, denn 24 und 32 Bit haben ja jeweils 2^24 (irgendwas mit 16 Mio...) Farben. Die zusätzlichen 8 Bit sind meines Wissen nach Alpha-Werte, die für die Transparenz zuständig sind.
Ich hoffe ich habe jetzt kein Mist erzählt.
Eine richtige Lösung habe ich aber f+ür dein Problem auch nicht.

Mario 11. Dez 2003 14:49

Re: Probleme mit Image Transparenz bei 24bit
 
Nein, es ist nicht anders rum. Bei 24bit geht es :wall:

Naja, aber der AlphaChannel wird auch nicht verwendet. Image blendet einfach die Farbe im Pixel unten links im ganzen Bild aus. Aber genau das tut nicht, bei 32 bit, wenn ich es aus der ImageList lade...

Mario 12. Dez 2003 09:08

Re: Probleme mit Image Transparenz bei 24bit
 
Ich habe das Problem lösen können:
Delphi-Quellcode:
     if AllesOK
     then ImageListIcon.GetBitmap(idNotOK,ImageStatus.Picture.Bitmap)
     else ImageListIcon.GetBitmap(idOK  ,ImageStatus.Picture.Bitmap);
Der Umweg über die Bitmap geht offensichtlich nicht stabil, aber so ist es auch recht. Warum ich damals den Umweg über die Bitmap eingebaut habe, weiß ich aber heute auch nicht mehr.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz