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
tumo

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

AW: PNG in TImage falsch dargestellt

  Alt 24. Apr 2020, 13:20
Nun, der Fehler tritt offenbar auch bei BitTransparency auf. Ich nutze ebenfalls die von Delphi mitgelieferte pngimage-Lib.
Kannst du denn die Blume in Stretch=true und Proportional=true korrekt darstellen lassen?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: PNG in TImage falsch dargestellt

  Alt 24. Apr 2020, 16:52
Aha! Nur bei 1-Bit bzw. transparenter Farbe (welche artverwandt sind). Das lässt darauf schließen, dass die verwendete Resampling-Methode den "Alphakanal" für diese falsch behandelt. Ich habe das jetzt nicht mehr ganz im Kopf: Was für ein Filter wird denn beim Vergrößern benutzt? Bei Nutzung von Nearest-Neighbour würde ich fast vermuten, dass es kein Problem geben sollte. (Sieht natürlich auch nicht so schick aus.) Aber das wäre die Richtung, in die ich weiter forschen würde.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: PNG in TImage falsch dargestellt

  Alt 24. Apr 2020, 17:28
Ich habe jetzt nicht alles gelesen..
Aber was für eine Qualität bzw. Ansicht erwartest du bei einem Indizierten *.png!
Das kann nur inkorrekt dargestellt werden.

Ändere es doch einfach mal von 8 auf 32Bit.
Ich behaupte jetzt einfach mal das TImage mit indizierten *.png's nicht klar kommt.

Geändert von venice2 (24. Apr 2020 um 17:34 Uhr)
  Mit Zitat antworten Zitat
Redeemer

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

AW: PNG in TImage falsch dargestellt

  Alt 25. Apr 2020, 11:24
Ich habe jetzt nicht alles gelesen..
Aber was für eine Qualität bzw. Ansicht erwartest du bei einem Indizierten *.png!
Das kann nur inkorrekt dargestellt werden.
Nein.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
49 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: PNG in TImage falsch dargestellt

  Alt 25. Apr 2020, 16:10
@Medium
Ich wüsste jetzt nicht, wo man den Vergrößerungs-Algorithmus einstellen kann. Tatsächlich macht er das schon mit NearestNeighbour (oder etwas, was verdammt danach aussieht), was auch das ist, was ich will. Verfolgt man die Draw()-Methode von PNGImage landet man mit BitTransparency früher oder später in einer Prozedur mit dem schönen Namen "DrawTransparentBitmap". Da drin wird mit Windows-Blt-Befehlen weiter gearbeitet. Ab da verstehe ich nicht mehr wirklich viel :/.

@venice2
Ich erwarte, dass die Pixeldaten korrekt dargestellt werden, auch in vergrösserter Version. Es gibt noch einen Unterschied zwischen hässlich und inkorrekt darstellen. Es "einfach" mal von 8bit auf 32bit zu ändern (1.) geht mit Palettenbildern nicht, (2.) lässt TPNGImage á la BitDepth=32bit nicht zu, (3.) ist in meinem Fall nicht möglich, da die Bilder so gegeben sind. Die Behauptung ist zwar ganz nett, aber eben nicht richtig bzw. offensichtlich. TPNGImage hat einen extra Case für BitTransparency (die nur in Palettenbildern vorkommt) in der Draw()-Methode. Andere, nicht-transparente, indizierte PNGs kann es ja problemlos.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: PNG in TImage falsch dargestellt

  Alt 25. Apr 2020, 18:50
Zitat:
aber eben nicht richtig bzw. offensichtlich. TPNGImage hat
Ihr solltet euch mal langsam einigen.
Was denn nu TImage oder TPNGImage

Zitat:
(1.) geht mit Palettenbildern nicht
geht nicht gibt es nicht.

Es ist ein einfaches dein Paletten Bild im Speicher zu einem vollwertigen 32Bit PNG Image zu konvertieren.
Was hindert dich daran.
Zitat:
(2.) lässt TPNGImage á la BitDepth=32bit nicht zu
Wofür braucht man die Komponente wenn ich das im Speicher erledigen kann.
Es scheint mir ohne Komponente seid ihr alle aufgeschmissen.
Zitat:
Ab da verstehe ich nicht mehr wirklich viel :/.
Bestätigt meine vermutung.
Zitat:
(3.) ist in meinem Fall nicht möglich, da die Bilder so gegeben sind.
Nichts ist gegeben hinzunehmen. Siehe beide Kommentare zuvor.

Geändert von venice2 (25. Apr 2020 um 21:18 Uhr)
  Mit Zitat antworten Zitat
Redeemer

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

AW: PNG in TImage falsch dargestellt

  Alt 26. Apr 2020, 09:24
Zitat:
aber eben nicht richtig bzw. offensichtlich. TPNGImage hat
Ihr solltet euch mal langsam einigen.
Was denn nu TImage oder TPNGImage
Wofür braucht man die Komponente wenn ich das im Speicher erledigen kann.
Es scheint mir ohne Komponente seid ihr alle aufgeschmissen.
So große Töne spucken, wenn man noch nicht mal weiß, was Delphi-Referenz durchsuchenTPNGImage ist...

Zitat:
(1.) geht mit Palettenbildern nicht
geht nicht gibt es nicht.
Du suchst eine Herausforderung? Alles klar, dann erstell doch einfach mal ein Computerprogramm, das irgendein Problem aus dieser Liste in polynomieller Zeit löst.

Es ist ein einfaches dein Paletten Bild im Speicher zu einem vollwertigen 32Bit PNG Image zu konvertieren.
Das ist dennoch ein richtiger Ansatz.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
49 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: PNG in TImage falsch dargestellt

  Alt 26. Apr 2020, 14:46
Das ist dennoch ein richtiger Ansatz.
Gibt es da irgend einen Trick? Mein Ansatz wäre jetzt das pixelweise Parsen in ein neues TPNGObject, bin mir aber nicht sicher, ob das nicht noch effizienter geht.

Das umgeht dann ja aber nur das Problem. Mit anderen Worten, ich muss einen Edgecase für ebendiese Problembilder machen. Naja, ich schätze mal, das ist der sinnvollste Weg für mich, manchmal kann man eben nicht alles haben.
Wäre das ein Bug, den man so bei Embarcadero einreichen müsste? Hab bisher nichts dazu gefunden, kann also gut sein, dass ich der erste bin, der auf diesen Fehler stößt (was mich aber auch wundern würde).

Danke trotzdem für die bisherige Hilfe.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#9

AW: PNG in TImage falsch dargestellt

  Alt 26. Apr 2020, 16:01
Nur damit du siehst das es geht von wegen (So große Töne spucken)
ABer da du Herrn Redeemer angesprochen hast und dieser nur die Leute beleidigen kann soll er dir auch helfen.

Aus deinem indizierten *.png im Speicher 24Bit erstellt und extrem vergrößert bzw. auf mein Fenster angepasst.
Nicht mal 5 Minuten Arbeit.

Damit du nicht denkst es wäre ein fake habe ich noch 2 Bitmaps drüber gelagert.
Es ist dein Paletten Bild unverändert. (1 Bit). Einfach nur als Hintergrund geladen

Ich werde das Thema nun verlassen.
Schönen Tag noch.

Geändert von venice2 (20. Okt 2020 um 11:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:06 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