Einzelnen Beitrag anzeigen

tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#1

PNG in TImage falsch dargestellt

  Alt 14. Apr 2020, 13:38
Delphi-Version: 10.3 Rio
Hallo,

ich habe ein kleines Programm, was mir Texturen auflistet und diese nach Bedarf anzeigt. Die Texturen sind als PNG gespeichert und werden (dank PNGImage) auch problemlos von Delphi geladen. Die Texturen sind fast immer 32x32 px groß und damit ich diese auf einem FHD Bildschirm auch ordentlich beurteilen kann, dachte ich, ich stelle sie ein wenig größer dar. TImage war von dieser Idee leider weniger begeistert, da es manche der Texturen mit schwarzem Outline darstellt. Dabei trat der Fehler bisher nur bei Bildern mit (genutztem) Alpha-Channel auf, jedoch auch nicht bei jedem Bild mit Alpha-Werten. Damit ist die Beurteilung der Texturen logischerweise unmöglich, da nicht korrekt dargestellt. Wenn ich mir die Pixeldaten vom TImage (!) ausgeben lasse, ist alles korrekt, also muss ein Fehler bei der gestreckten Darstellung passieren.

Zum Verständnis: Das TImage hat Proportional := true und Stretch := true . Das TImage soll das Bild auf eine Größe von 144x144 px, ultimativ aber auf jede beliebige Größe skalieren können. Der Fehler tritt nicht auf, wenn das TImage auf 64x64 px (x2) skaliert, bei 128x128 px (x4) wiederum schon.

Was übersehe ich hier? Warum werden bei manchen (aber nicht allen) PNGs solche Outlines dargestellt?

Im Anhang sehr ihr einmal das Originalbild (in 32 px und 144 px) und was das TImage daraus macht (in 144 px).
Miniaturansicht angehängter Grafiken
original144.png   image144.png  
Angehängte Grafiken
 
  Mit Zitat antworten Zitat