![]() |
PNG Transparenz ohne Transparenzfarbe
Huhu,
ich hoffe ich bin im richtigen Unterforum. Was ich machen wollte ist eigentlich recht simpel, dachte ich. Ich lade mehrere kleine PNG Icons in TImages. Danach wollte ich diese mit SaveToFile (woanders) speichern. Das Problem ist, die Transparenz um das Icon wird nicht erkannt. Vermutlich weil das Icon weiss ist und die Transparenz... keine Ahnung. Ich gucke mir das Icon in Photoshop an und da ist eben transparenz, um das weisse Icon. Beim laden wird das so angezeigt wie es soll. Aber speichern kann ich es nicht. Dabei wird das, was transparent sein soll, immer schwarz. Picture.Bitmap.TransparentColor := clNone; sowie Picture.Bitmap.TransparentColor := clBlack; oder Picture.Bitmap.TransparentMode := true; ändern leider nichts an dem Problem. Wie kann ich das png einfach abspeichern wie es geladen wurde? |
AW: PNG Transparenz ohne Transparenzfarbe
Hi,
gehe ich Recht in der Vermutung, dass Du auf dem Formular in der TImage-Komponente die Transparenz korrekt siehst? Wenn ja, probiere einfach mal bitte
Delphi-Quellcode:
und vermeide alle Zugriffe auf Picture.Bitmap...
Image.Picture.SaveToFile('C:\temp\Test.ico'
|
AW: PNG Transparenz ohne Transparenzfarbe
Ja, auf dem Formular sehe ich das korrekt. Also VOR dem speichern.
Leider ändert sich nichts, wenn ich so abspeichere. |
AW: PNG Transparenz ohne Transparenzfarbe
Bei mir funktioniert das, allerdings mit XE8:
Delphi-Quellcode:
var
procedure SavePng(Image1: TImage); var Png: TPngImage; begin // Speichern Png := TPngImage.CreateBlank( COLOR_PALETTE, 8, 32, 32); try Png.Canvas.Draw(0, 0, Image1.Picture.Graphic ); Image1.Picture.SaveToFile( 'C:\Temp\Test1.png' ); finally Png.Free; end; end; |
AW: PNG Transparenz ohne Transparenzfarbe
Ja, mit Konvertierung geht es bei mir (XE5) auch halbwegs. Nicht alle transparenten Bereiche werden erkannt, leider. Das sieht an manchen Kanten dann recht ausgefranst aus. Ich dachte eigentlich das in einer XE Variante TImage standardmäßig PNG speichern kann, so wie ja auch laden geht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 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