Pertanyaan Mengapa gambar PNG ini ditampilkan berbeda di Chrome & Firefox daripada di Safari dan IE?


Periksa gambar ini:

Apple or Pear

Di Chrome dan Firefox ia akan tampil sebagai buah pir. Sekarang, coba simpan dan lihat itu disimpan di desktop Anda. Juga, coba lihat di Safari atau Internet Explorer. Ini akan ditampilkan sebagai apel!

Coba klik gambar dan gerakkan. Anda akan melihat apel muncul.

Mengapa ini terjadi?


663
2018-04-07 03:32


asal


jika saya mencoba untuk menyeret gambar di firefox hanya sedikit, gambar yang diseret secara transparan akan membuat bentuk apel aPear - ajax333221
Bagaimana Anda membuat gambar ini? Bisakah Anda mengarahkan saya ke situs web? - tumchaaditya
Untuk pembaca masa depan, ini tampaknya diperbaiki dalam versi IE saat ini. - Kat
Tetapi Anda masih dapat mengunduhnya ke desktop Anda dan melihat apel di sana, dan melihatnya di Firefox, Chrome sebagai pir. - Jet


Jawaban:


Itu terjadi karena beberapa browser melakukan koreksi gamma sebagaimana ditentukan dalam file gambar.

Inilah gambar yang tidak dikoreksi. Piksel "white-ish" dalam gambar apel berisi gambar buah pir, disimpan pada intensitas yang jauh lebih tinggi, yaitu sangat terang.

Inilah gambar gamma yang dikoreksi. Piksel "hitam-ish" dalam gambar pir mengandung gambar apel, disimpan pada intensitas yang cukup normal, tetapi diperkecil ke mendekati hitam dengan koreksi gamma.

Di layar saya, saya bisa melihat pir samar-samar di antara piksel putih pada gambar pertama, tetapi pada gambar kedua, apel tidak dapat dibedakan dari piksel hitam di sekitarnya.

(Anda mungkin juga melihat beberapa garis warna pada pir yang dikoreksi gamma, karena gambar yang tidak dikoreksi menggunakan jangkauan yang lebih kecil dari saluran warna.)

File gambar PNG berisi potongan gAMA yang menetapkan nilai gamma file 0,02. Ketika ditampilkan tanpa koreksi gamma, pemirsa melihat apel dengan piksel "putih" diselingi, yang sebenarnya adalah pir pada intensitas aslinya (tinggi).

Ketika ditampilkan dengan koreksi gamma, pemirsa melihat buah pir yang dikoreksi dengan piksel "hitam" yang sebenarnya adalah apel yang diberikan pada nilai gamma yang jauh lebih rendah.

Browser yang menampilkan pir melakukan koreksi gamma pada gambar, sementara browser yang menampilkan apel tidak melakukan koreksi gamma, tetapi hanya menampilkannya dengan nilai warna literalnya.


524
2018-04-07 05:23



Bacaan yang disarankan pada topik: artikel terkenal oleh Eric Brasseur disebut "Galat gamma dalam skala gambar. - ulidtko
@ulidtko Sekarang menjadi 404. Inilah a salin pada Arsip Web. - Cole Johnson


Ini sedikit terlalu banyak untuk komentar, tapi semoga itu membantu.

Jadi, saya cukup yakin bahwa masalah ini berkaitan dengan cara browser menafsirkan informasi gamma dengan PNG. Ini adalah masalah yang cukup menyenangkan dan berkaitan dengan ambiguitas informasi gamma di tempat pertama.

Artikel Kisah Menyedihkan "Koreksi" Gamma PNG memberikan ringkasan yang sangat bagus tentang masalah, perbaikan, dan fakta menyenangkan lainnya.

Dengan begitu, kita sebenarnya dapat menghapus informasi gamma dari gambar yang digunakan pngcrush

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

Jadi dengan informasi gamma dan tanpa itu:

pear an apple

Saya tidak akan benar-benar mengatakan ini adalah "jawaban", tetapi jika sesuatu itu mungkin dalam arah yang benar. Saya yakin seseorang dengan banyak pengetahuan tentang profil warna dan sebagainya akan datang dengan tanggapan yang lebih formal.


227
2018-04-07 04:34



kedua gambar itu tampak sama bagiku, berkedip-kedip antara apel dan pir sama seperti aslinya dalam pertanyaan itu. Saya menggunakan Safari 6.0.2 - Fraser Graham
Perhatikan bahwa dua elemen terakhir dari perintah yang disediakan di sini adalah infile dan outfile: mis. pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile.png outfile.png. Info lebih lanjut: hsivonen.fi/png-gamma - fredrivett


Mengubah gamma (γ) dari suatu gambar yang terdiri dari modifikasi nilai gamma dalam:

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

yang memberikan warna piksel output (R ', G', B ') yang ditampilkan di layar setelah menerapkan fungsi gamma ke nilai piksel awal (R, G, B) (mempertimbangkan R, G, dan B dinormalisasi antara 0 dan 1 ).

Sekarang, mari kita ambil saluran merah misalnya.
Jika R = R0 + R1 , Anda akan mendapatkan
R '= (R0 + R1)γ = R0γ * (1 + R1 / R0)γ

Jika R0 jauh lebih besar dari R1, maka Anda punya
(1 + R1 / R0)γ ≈ 1 + γR1 / R0,
begitu R '≈ R0γ + γ


40
2018-04-07 05:38





Ini bukan piksel pembulatan dan profil warna ICC bukan masalahnya.

Ini adalah gambar tipuan, dan beberapa browser menampilkan PNG tanpa data gamma. Untuk browser tersebut, Anda melihat satu hal, dan untuk browser lain Anda melihat gambar penuh (dengan pir tersembunyi di latar belakang).

Saya melihat gambar jepretan apel / pir, atau saya hanya melihat pir, tergantung pada apakah browser mendukung data gamma ini.


9
2018-04-07 05:41





Selain itu, Anda dapat melihat lebih banyak detail dalam gambar dengan tampilan yang dikalibrasi dengan tepat dan jika gamma / kecerahan / kontras tinggi, Anda dapat melihat satu gambar dalam gambar tersembunyi lebih


1
2018-03-11 01:49