Vielleicht noch ein paar Hinweise zu PNG in ImageList (
VCL, D2010, wenn's nicht so langsam gefixt wurde):
- TBitmap.Assign(TPNGImage) glättet das Bild zu Schwarz, behält aber den Alphakanal. Der Farbkanal ist somit Blödsinn und bei transparenten Bereichen umso mehr zu dunkel, je näher man an 50% Deckkraft ist. Weist man ein weißes PNG-Bild mit 50% Deckkraft einer Bitmap zu, hat man ein graues Bild mit 50% Deckkraft. Man muss daher nach Assign immer noch Canvas.CopyRect aufrufen, um die korrekten Farbinformationen erneut zu kopieren.
- Ich füge das sich ergebende Bitmap mit AddMasked(Bitmap, clNone) hinzu. Ich glaube, das macht man so.
- TImageList.ReplaceMasked unterstützt keinen Alphakanal. Add und Insert gehen.