AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PNG in TImage falsch dargestellt

Ein Thema von tumo · begonnen am 14. Apr 2020 · letzter Beitrag vom 29. Apr 2020
Antwort Antwort
Seite 6 von 6   « Erste     456   
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#51

AW: PNG in TImage falsch dargestellt

  Alt 27. Apr 2020, 18:09
Jetzt hat das Problem einen Workaround. Warum Delphi überhaupt eine Unterscheidung zwischen Partial- und BitTransparency macht, bleibt mir ein Rätsel. Hat das einen entscheidenden Vorteil?[/DELPHI]
ptmBit ist deutlich einfacher (performanter) zu zeichnen als ptmPartial, wo man Alpha Blending (Porter-Duff OVER) durchführen muss.

Unterstützt dein PNGDelphi ohne meinen Algorithmus 4-Bit+Alpha und 1-Bit+Alpha? Ich hab mal zwei Beispiele angehängt.
Angehängte Grafiken
  
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#52

AW: PNG in TImage falsch dargestellt

  Alt 27. Apr 2020, 20:25
Jetzt hat das Problem einen Workaround. Warum Delphi überhaupt eine Unterscheidung zwischen Partial- und BitTransparency macht, bleibt mir ein Rätsel. Hat das einen entscheidenden Vorteil?[/DELPHI]
ptmBit ist deutlich einfacher (performanter) zu zeichnen als ptmPartial, wo man Alpha Blending (Porter-Duff OVER) durchführen muss.

Unterstützt dein PNGDelphi ohne meinen Algorithmus 4-Bit+Alpha und 1-Bit+Alpha? Ich hab mal zwei Beispiele angehängt.
Fehlten da die Anhänge?
Bei mir war nur der Rahmen um den Bwereich herum da, aber kein Inhalt.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#53

AW: PNG in TImage falsch dargestellt

  Alt 27. Apr 2020, 20:43
Bei mir sind da Bilder. Was für einen Browser benutzt du? Ich habe Firefox 75.
Hab es dir aber nochmal aus 7z angehängt.
Angehängte Dateien
Dateityp: 7z 4BPP1BPP.7z (373 Bytes, 1x aufgerufen)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
tumo

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

AW: PNG in TImage falsch dargestellt

  Alt 28. Apr 2020, 15:42
ptmBit ist deutlich einfacher (performanter) zu zeichnen als ptmPartial, wo man Alpha Blending (Porter-Duff OVER) durchführen muss.
Stimmt.
Aber auch nur, wenn es korrekt geht .

Was deine Bilder angeht, mein Delphi (bzw. mein pngimage) kann die problemlos darstellen. Ist wohl wirklich nur bei BitTransparency.
  Mit Zitat antworten Zitat
tumo

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

AW: PNG in TImage falsch dargestellt

  Alt 28. Apr 2020, 20:01
Ich muss leider noch mal stören.

@Redeemer
Dein Code hat ein Problem mit 2bit Palettenbildern. Beim drüberschauen ist mir jedoch kein Fehler aufgefallen. 8bit und 4bit geht dafür aber super
Falls es hilfreich ist, in deinem Code scheinen tatsächlich keine Fehler zu sein, die Daten von der Source-Scanline sind falsch(?). Bei meinem Testbild in Zeile y=4 hat er für x2=1 den Scanline-Wert 50 (oder 0011 0010). Abgesehen davon, dass die damit korrespondierenden Pixel die Farbreihenfolge (nach Chroma) von 01 01 10 11 haben müssten (was in den Scanline-Daten gleich garnicht stehen kann, aufgrund der Transparenz von 00 und 01 aber nicht auffällt), scheint etwas an ebendiesem Punkt falsch zu laufen.
Angehängte Grafiken
 

Geändert von tumo (28. Apr 2020 um 20:02 Uhr) Grund: Anhang vergessen :|
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#56

AW: PNG in TImage falsch dargestellt

  Alt 28. Apr 2020, 22:21
Klappt bei mir in Delphi 2009 ohne Probleme mit meiner Methode. Bitdepth ist zwar 4, was scheinbar falsch ist, die Daten liegen aber auch so im Speicher, als ob es 4 wäre (bei mir und bei dir!).
Was ist Bitdepth bei dir? Falls 2, was passiert, wenn du BitDepth (also die Variable in meiner Methode) direkt nach dem Setzen auf 4 setzt?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
tumo

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

AW: PNG in TImage falsch dargestellt

  Alt 29. Apr 2020, 09:16
Also beim Auslesen des Headers bekomme ich: Indexed 2bit. Ironischerweise wird es ohne deinen Code korrekt dargestellt. Beim setzen auf 4bit funktioniert es auch korrekt. So langsam frage ich mich, was in der pngimage-Library eigentlich nicht fehlerhaft ist .
Was ist Dein Gedanke?
Delphi-Quellcode:
BitDepth := PNG.Header.BitDepth;
if BitDepth < 4 then BitDepth := 4;
EDIT: Wenn man die png.Pixels Property nutzt, funktioniert es auch nicht. Es wird immer kurioser, fast, als hätte sich diese Lib nie wieder jemand angeschaut oder überprüft, dass sie auch das kann, was sie anbietet.

Geändert von tumo (29. Apr 2020 um 09:23 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#58

AW: PNG in TImage falsch dargestellt

  Alt 29. Apr 2020, 09:42
Was ist Dein Gedanke?
Delphi-Quellcode:
BitDepth := PNG.Header.BitDepth;
if BitDepth < 4 then BitDepth := 4;
Nein:
Delphi-Quellcode:
BitDepth := PNG.Header.BitDepth;
if BitDepth = 2 then BitDepth := 4;
Oder hast du Probleme mit simple3.png, dem gelb-pinken Bild aus meinem Anhang? Dein Code würde auch da das Verhalten ändern, denn das hat 1BPP.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
tumo

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

AW: PNG in TImage falsch dargestellt

  Alt 29. Apr 2020, 15:56
Ach ja. Geht jetzt. Trotzdem komisch das ganze...

Danke Dir nochmal.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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 20:45 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