AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi PNG Transparenz ohne Transparenzfarbe

PNG Transparenz ohne Transparenzfarbe

Ein Thema von Satyr · begonnen am 20. Jul 2015 · letzter Beitrag vom 20. Jul 2015
Antwort Antwort
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#1

PNG Transparenz ohne Transparenzfarbe

  Alt 20. Jul 2015, 13:10
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?
  Mit Zitat antworten Zitat
rwalper

Registriert seit: 6. Sep 2006
45 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: PNG Transparenz ohne Transparenzfarbe

  Alt 20. Jul 2015, 13:38
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 Image.Picture.SaveToFile('C:\temp\Test.ico' und vermeide alle Zugriffe auf Picture.Bitmap...
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: PNG Transparenz ohne Transparenzfarbe

  Alt 20. Jul 2015, 13:44
Ja, auf dem Formular sehe ich das korrekt. Also VOR dem speichern.
Leider ändert sich nichts, wenn ich so abspeichere.
  Mit Zitat antworten Zitat
rwalper

Registriert seit: 6. Sep 2006
45 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: PNG Transparenz ohne Transparenzfarbe

  Alt 20. Jul 2015, 16:02
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;
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: PNG Transparenz ohne Transparenzfarbe

  Alt 20. Jul 2015, 16:34
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 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