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 TActionManager + TVirtualImageList + PNG (https://www.delphipraxis.net/213029-tactionmanager-tvirtualimagelist-png.html)

cltom 11. Mai 2023 08:58

TActionManager + TVirtualImageList + PNG
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

das Thema kommt öfter mal vor: rosa Ränder an transparenten Icons. Ich dachte mit TVirtualImageList wäre es vorbei, doch offenbar nicht ganz. Immer wieder krieg ich rosa Ränder um transparente Icons. Reproduzierbar zum Beispiel, wenn ich ein Icon einer Aktion im TActionManager zuweise. Das gleiche Icon aus der gleichen Imagelist einem Speedbutton direkt zugewiesen sieht so aus, wie es soll:

Als Detail: design-time sieht es noch einen Ticken besser aus als Run-Time, aber der rosa Rand ist immer zu sehen.

Hab einiges herumprobiert an der ImageCollection, das ändert aber nichts.

Gibt es da Hinweise? Danke!

Uwe Raabe 11. Mai 2023 09:36

AW: TActionManager + TVirtualImageList + PNG
 
Kannst du das Beispielprojekt mal hier posten? Das erspart dem einen oder anderen die Mühe, das selbst zusammenzubauen, und vermeidet insbesondere auch Unschärfen in der Beschreibung.

Renate Schaaf 11. Mai 2023 09:53

AW: TActionManager + TVirtualImageList + PNG
 
Sind die icons wirklich .png? Die regeln das doch über den alpha-channel, und das funktioniert sowieso besser. Rosa Ränder tauchen eigentlich nur bei .bmp auf, die eine transparente Farbe haben. Man könnte aber ziemlich einfach eine utility schreiben, die die transparente Farbe in alpha übersetzt und das Ergebnis in .png abspeichert.

Renate

cltom 11. Mai 2023 10:58

AW: TActionManager + TVirtualImageList + PNG
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Rückmeldungen. Das Beispiel anbei. Ja, es sind png mit transparentem Hintergrund.

Denkbar, dass es indirekt mit Anti-Aliasing zusammenhängt ... ?! Wie genau die Transparenz beim AA interpretiert wird.

Uwe Raabe 11. Mai 2023 11:28

AW: TActionManager + TVirtualImageList + PNG
 
Dem Action-SpeedButton ist keine ImageList zugewiesen. In dem Fall wird beim Zuweisen der Action ein Bitmap erzeugt und als Glyph angezeigt (kann man im Glyph Property sehen).

Richtiges Vorgehen: Dem SpeedButton erst die ImageList und danach die Action zuweisen. Das setzt dann im SpeedButton den ImageIndex.

himitsu 11. Mai 2023 12:51

AW: TActionManager + TVirtualImageList + PNG
 
Es sieht ja so aus, als wenn bei der Action das "Image" umkopiert/transformiert wird.
Also z.B. das PNG intern auf einen rosa Hintergrund und das ErgebnisBild (Icon/Bitmap) dann erst im Button zu sehen ist.

Wenn da das Alpha in eine Transparenz-Maske (durchsichtiges Pixel oder nicht) überführt würde, dann kommt sowas bei raus, wenn man "halbtransparente" Pixel letztendlich als Transparent und nicht als Intransparent behandelt. (oder beim Umkopieren muß eine passendere Hintergrundfarbe benutzt werden ... wobei oftmals einfach schwarz, anstatt Rosa genommen wird, was auch nicht immer "optimal" ausschaut, z.B. auf hellen Buttons/Komponenten)

cltom 12. Mai 2023 08:00

AW: TActionManager + TVirtualImageList + PNG
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1522289)
Dem Action-SpeedButton ist keine ImageList zugewiesen. In dem Fall wird beim Zuweisen der Action ein Bitmap erzeugt und als Glyph angezeigt (kann man im Glyph Property sehen).

Richtiges Vorgehen: Dem SpeedButton erst die ImageList und danach die Action zuweisen. Das setzt dann im SpeedButton den ImageIndex.

Ok, danke, das wusste ich nicht. Ich dachte, es würde reichen, die Action zuzuweisen und damit kommt der Rest mit. Aber ja, sobald man es macht, wie Du es beschrieben hast, passt das Icon.

Danke!!

Uwe Raabe 12. Mai 2023 08:44

AW: TActionManager + TVirtualImageList + PNG
 
Die Action kennt die ImageList für den Button ja gar nicht. Man könnte jetzt die der ActionList nehmen, aber die gibt es häufig gar nicht oder sie passt nicht zu dem Form auf dem der Button liegt (wichtig bei per Monitor DPI).

cltom 12. Mai 2023 13:38

AW: TActionManager + TVirtualImageList + PNG
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1522330)
Die Action kennt die ImageList für den Button ja gar nicht. Man könnte jetzt die der ActionList nehmen, aber die gibt es häufig gar nicht oder sie passt nicht zu dem Form auf dem der Button liegt (wichtig bei per Monitor DPI).

ok, ist klar, Danke Dir!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 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