![]() |
Konvertieren TBitmap mit Alphakanal nach TIcon
Hallo miteinander,
Wahrscheinlich stehe ich gerade auf dem Schlauch: Ich suche eine Möglichkeit, ein TBitmap (PixelFormat pf32bit) in ein TIcon zu konvertieren, aber so, dass die Teiltransparenz erhalten bleibt. Den Trick mittels TImageList kenne ich, nachteilig ist, dass die Teiltransparenz dabei flöten geht. Siehe ![]() In der TImageList gibt es die Methode "Add(Image, Mask: TBitmap)", deren zweiter Parameter mir schleierhaft ist. Die MSDN-Doku zu dieser API-Funktion begreife ich ganz einfach nicht. Mir fällt jetzt nichts mehr ein, ein möglicher Umweg über TPNGImage erscheint mir doch etwas abenteuerlich - es sollte doch einfacher möglich sein? Unter Teiltransparenz verstehe ich, dass die Werte des Alphakanal beliebige ganzzahlige Werte zwischen 0 und 255 annehmen können! Ich verwende Delphi XE2 unter Windows 7 Home Premium 32bit. Ich hoffe, dass mir jemand ein wenig auf die Sprünge helfen kann. Gruß aus Wien |
AW: Konvertieren TBitmap mit Alphakanal nach TIcon
Typisches with Problem*** :)
Delphi-Quellcode:
procedure bmp2ico(Image: TImage; FileName: TFilename);
var Bmp: TBitmap; Icon: TIcon; ImageList: TImageList; begin Bmp := TBitmap.Create; Icon := TIcon.Create; try Bmp.Assign(Image.Picture); ImageList := TImageList.CreateSize(Bmp.Width, Bmp.Height); try ImageList.AddMasked(Bmp, Bmp.TransparentColor); // **** ImageList.GetIcon(0, Icon); Icon.SaveToFile(FileName); finally ImageList.Free; end; finally Bmp.Free; Icon.Free; end; end; |
AW: Konvertieren TBitmap mit Alphakanal nach TIcon
So ist es besser ;):
Delphi-Quellcode:
Icon := nil;
Bmp := TBitmap.Create; try Icon := TIcon.Create; ... finally Bmp.Free; Icon.Free; end; |
AW: Konvertieren TBitmap mit Alphakanal nach TIcon
Hallo DeddyH,
Danke für die Antwort. Dies ist leider genau die Lösung, die ich schon in der Fragestellung (Link!) ausgeschlossen hatte. Bei Deiner Lösung wird nur eine einzige Farbe als Transparenz verwendet, ich will aber Teiltransparenzen haben, deshalb gibt es ja den Alphakanal und TIcon kann damit umgehen. Gibt es nicht doch eine Lösung? Gruß aus Wien |
AW: Konvertieren TBitmap mit Alphakanal nach TIcon
Ich habe doch gar keine Lösung gepostet :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz