Hallo Ben,
erst mal vielen Dank für Deine Antwort und den tollen Link zur PNG-Bibliothek, ist echt klasse.
Zitat:
Ich hab nicht ganz verstanden was du damit meinst.
Gut, ich versuchs mal anders auszudrücken... es gibt ja zahlreiche Komponenten, wie beispielsweise das Actionmenu oder der VirtualGrid, welche CustomImagelists als property akzeptieren und den untergeordneten Elementen die Grafik dann anhand des ImageIndex zuweisen. Der Haken an der Sache ist, dass ich vorerst ja gar nicht weiß, welchen Hintergrund die PNGs erhalten werden, es kann ein Verlauf sein (ich hab da so meine Komponenten) oder sonst irgendeine benutzerdefinierte Anzeigeneinstellung, welche auch zur Laufzeit geändert werden könnte - ganz banal: ich ändere das XP-Theme von Blau auf Silber.
Dann haben alle PNGs, welche ich beim Programmstart von der Ressource geladen, einen Hintergrund verpasst und in die Standard-Imagelist gesetzt habe den falschen Hintergrund und sehen aus wie Klötzchen-Sticker. Selbst wenn das Ändern der Farbeinstellungen nicht zutrifft, ich könnte beispielsweise das Icon auf nem Button mit Verlauf brauchen und zugleich im Actionmenu mit clBtnShadow als Iconhintergrund und zugleich im Virtualtree - wenns gut geht ist da nur weiß als Hintergrund (und es geht selten gut).
Die Imagelist müsste also die PNGs mit Transparenz speichern (nicht nur mit einer Transparenten Farbe) und je nach Control bei der Ausgabe das PNG auf den Hintergrund draufmischen. Gibt es sowas überhaupt schon, oder warten da eine Menge Hürden auf mich?
Deshalb auch die Idee mit der Maskierung der Randpixel á la Photoshop-Zauberstab mit Glätten, also quasi bei der Ausgabe die Transparenzen mit dem Hintergrund abmischen.
Irgendein Tip in die richtige Richtung, wie man das anfangen könnte? Wäre super.