Danke für die vielen Antworten
Wenn du nicht unbedingt auf Bordmittel festgelegt bist: In den Elpack-Komponenten (sicherlich auch bei anderen Sammlungen ähnlich) kann man alle
Gui-Controls (imageList, ....) mit PNG's arbeiten lassen. Dann sind solche problematischen Workarounds gar nicht mehr nötig.
auch die normale Imagelist nimmt problemlos PNG´s auf. Es muß nur die imagelist.colordepth auf cd32bit stehen. Problem ist halt eher die direkte Weiterverarbeitung
imagelist.getbitmap(...)
geht die Transparenz flöten
Delphi-Quellcode:
imagelist.geticon(...)
bmp.assign(Icon)
ist alles i.O.
Wobei es mich dann allerdings wundert, dass das mit bmp.Assign(png);
laut deiner Aussage funktioniert. Hast du auch ausprobiert, dass das mit allen Hintergrundfarben funktioniert? Nicht, dass es nur gerade zufällig so aussieht als würde es funktionieren, weil beim Entfernen des Alphakanals zufällig gegen die richtige Farbe geblendet wird...
Doch, das geht. Andersrum
png.Assign(bmp);
geht es nicht korrekt
.
siehe auch meine Frage hier
@Thom:
Danke, das schaue ich mir genauer an. Das ist das was ich brauche.
Es ist ja auch die Frage, ob manchmal sowas schon versteckt in Delphi integriert ist, sich neuere Delphis anders verhalten oder mehr mitbringen.
Grade so in versteckten Units wie graphutils verbergen sich oftmals nette Sachen und man kommt nie drauf.