Warum wird dieses PNG-Bild in Chrome und Firefox anders angezeigt als in Safari und IE?

92186
ethree

Überprüfen Sie dieses Bild:

Apple or Pear

Auf Chrome und Firefox wird es als Birne angezeigt. Versuchen Sie nun, es zu speichern und auf Ihrem Desktop gespeichert zu sehen. Versuchen Sie auch, in Safari oder Internet Explorer anzuzeigen . Es wird als Apfel angezeigt!

Klicken Sie auf das Bild und verschieben Sie es. Sie werden feststellen, dass der Apfel erscheint.

Warum passiert das?

668
Wenn ich versuche, das Bild ein wenig auf Firefox zu ziehen, wird das transparent gezogene Bild die Form des Apfels aPear ajax333221 vor 10 Jahren 4
Wie haben Sie dieses Bild erstellt? Kannst du mich auf eine Website verweisen? tumchaaditya vor 10 Jahren 1
Für zukünftige Leser scheint dies in aktuellen Versionen von IE behoben zu sein. Kat vor 10 Jahren 8
Sie können es jedoch weiterhin auf Ihren Desktop herunterladen und dort Apple sehen und es in Firefox Chrome als Birne anzeigen. Jet vor 9 Jahren 1

5 Antworten auf die Frage

530
mwfearnley

Dies ist darauf zurückzuführen, dass einige Browser die in der Bilddatei angegebene Gammakorrektur durchführen.

Hier ist das unkorrigierte Bild. Die "weißlichen" Pixel im Apfelbild enthalten das Bild einer Birne, die mit einer viel höheren Intensität, dh sehr hell, gespeichert wird.

Hier ist das Gamma-korrigierte Bild. Die "black-ish" -Pixel im Birnenbild enthalten das Bild eines Apfels, das bei einer ziemlich normalen Intensität gespeichert ist, jedoch mit der Gammakorrektur auf nahezu Schwarz verkleinert wurde.

Auf meinem Bildschirm kann ich die Birne im ersten Bild schwach unter den weißen Pixeln sehen, aber im zweiten Bild ist der Apfel nicht von den schwarzen Pixeln um ihn herum zu unterscheiden.

(Möglicherweise sehen Sie auch Farbstreifen auf der gamma-korrigierten Birne, da das unkorrigierte Bild einen viel kleineren Bereich der Farbkanäle verwendet.)

Die PNG-Bilddatei enthält einen gAMA-Block, der einen Dateigammawert von 0,02 angibt. Bei der Anzeige ohne Gamma-Korrektur sieht der Betrachter einen Apfel mit "weißen" Pixeln, die tatsächlich die Birne in ihrer ursprünglichen (hohen) Intensität sind.

Bei der Anzeige mit Gammakorrektur sieht der Betrachter eine farbkorrigierte Birne mit "schwarzen" Pixeln, die eigentlich der Apfel ist, der mit einem viel niedrigeren Gammawert gerendert wird.

Browser, die die Birne anzeigen, führen eine Gammakorrektur für das Bild durch, während Browser, die den Apfel anzeigen, keine Gammakorrektur durchführen, sondern nur mit den wörtlichen Farbwerten.

Eine empfohlene Lektüre zum Thema: Der berühmte Artikel von Eric Brasseur [Gamma-Fehler bei der Bildskalierung] (http://www.4p8.com/eric.brasseur/gamma.html). ulidtko vor 11 Jahren 14
@ulidtko Das ist jetzt eine 404. Hier ist eine [Kopie auf dem Webarchiv] (http://web.archive.org/web/20161004230750/http://www.4p8.com:80/eric.brasseur/gamma.html ). Cole Johnson vor 6 Jahren 1
229
Justin Van Horne

Dies war ein bisschen zu viel für einen Kommentar, aber hoffentlich hilft es.

Ich bin mir ziemlich sicher, dass es in dieser Ausgabe darum geht, wie Browser Gamma-Informationen mit PNGs interpretieren. Es ist ein ziemlich lustiges Problem und befasst sich in erster Linie mit den Mehrdeutigkeiten von Gamma-Informationen.

Der Artikel Die traurige Geschichte der PNG-Gamma-Korrektur bietet eine sehr schöne Zusammenfassung der Probleme, Abhilfemaßnahmen und anderer lustiger Fakten.

Damit können wir tatsächlich die Gamma-Informationen aus einem Bild entfernen, indem Sie verwenden pngcrush

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB pear.png apple.png 

Also mit der Gamma-Information und ohne sie:

Birne ein Apfel

Ich würde nicht wirklich sagen, dass dies "die Antwort" ist, aber wenn überhaupt, ist es wahrscheinlich in die richtige Richtung. Ich bin mir sicher, dass jemand mit viel Wissen über Farbprofile usw. eine formellere Antwort geben wird.

Diese beiden Bilder sehen für mich gleich aus, flackern zwischen Apfel und Birne, genau wie das Original in der Frage. Ich verwende Safari 6.0.2 Fraser Graham vor 11 Jahren 3
Beachten Sie, dass die letzten beiden Elemente des Befehls, die hier bereitgestellt werden, "infile" und "outfile" sind: zB "pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile.png outfile.png". Weitere Informationen: https://hsivonen.fi/png-gamma/ fredrivett vor 6 Jahren 1
40
WhitAngl

Changing the gamma (γ) of an image consists in modifying the value gamma in:

(R',G',B') = (Rγ, Gγ, Bγ)

which gives the output pixel color (R',G',B') displayed on the screen after applying the gamma function to the initial pixel values (R,G,B) (considering R,G, and B normalized between 0 and 1).

Now, let's take the red channel for example.
If R = R0+R1, you will obtain
R' = (R0+R1)γ = R0γ * (1+R1/R0)γ

If R0 is much bigger than R1, then you have
(1+R1/R0)γ ≈ 1 + γR1/R0,
so R' ≈ R0γ + γ
R1*R0γ-1

This means that for gamma close to 0, R0γ dominates. For γ=1, you get
R' ≈ R0 + R1

Fo a large gamma, the second term dominates, so that you can directly setup R0 = red component of the pear and R1 = red component of the apple, with R0 much larger than R1 and you will obtain the desired variations when changing the gamma of your monitor (or the particular gamma curve each software uses).

9
Jodo

Die Pixel werden nicht gerundet, und die ICC-Farbprofile sind nicht das Problem.

Es ist ein Trickbild, und einige Browser zeigen PNGs ohne Gamma-Daten an. Bei diesen Browsern sehen Sie eine Sache, und bei anderen Browsern sehen Sie das vollständige Bild (mit der Birne im Hintergrund).

Ich sehe entweder ein Apfel / Birnen-Trickbild oder ich sehe nur die Birne, abhängig davon, ob der Browser diese Gamma-Daten unterstützt.

1
nwgat

So wie es aussieht, können Sie in Bildern mit einer richtig kalibrierten Anzeige mehr Details sehen. Wenn Gamma / Helligkeit / Kontrast zu hoch ist, können Sie sehen, dass ein Bild im Bild mehr verborgen ist