Câu hỏi Tại sao hình ảnh PNG này hiển thị khác trong Chrome & Firefox so với trong Safari và IE?


Kiểm tra hình ảnh này ra:

Apple or Pear

Trên Chrome và Firefox, nó sẽ hiển thị dưới dạng quả lê. Bây giờ, hãy thử lưu nó và nhìn vào nó được lưu trên máy tính của bạn. Ngoài ra, hãy thử xem trong Safari hoặc là Trình duyệt web IE. Nó sẽ hiển thị như một quả táo!

Hãy thử nhấp vào hình ảnh và di chuyển nó xung quanh. Bạn sẽ thấy quả táo xuất hiện.

Lý do tại sao điều này xảy ra?


663
2018-04-07 03:32


gốc


nếu tôi cố gắng kéo hình ảnh trên firefox chỉ một chút, hình ảnh được kéo trong suốt sẽ làm cho hình dạng của quả táo aPear - ajax333221
Làm thế nào bạn tạo ra hình ảnh này? Bạn có thể chỉ cho tôi một trang web không? - tumchaaditya
Đối với người đọc trong tương lai, điều này dường như được sửa trong các phiên bản hiện tại của IE. - Kat
Nhưng bạn vẫn có thể tải xuống máy tính để bàn và xem táo ở đó và xem trong Firefox, Chrome dưới dạng quả lê. - Jet


Các câu trả lời:


Điều này xảy ra vì một số trình duyệt thực hiện chỉnh sửa gamma như được chỉ định trong tệp hình ảnh.

Đây là hình ảnh không được chỉnh sửa. Các điểm ảnh "trắng-ish" trong hình ảnh quả táo chứa hình ảnh quả lê, được lưu trữ ở cường độ cao hơn nhiều, tức là rất sáng.

Đây là hình ảnh được sửa chữa bằng gamma. Pixel "black-ish" trong hình quả lê chứa hình ảnh của quả táo, được lưu trữ ở cường độ khá bình thường, nhưng được thu nhỏ lại gần màu đen với hiệu chỉnh gamma.

Trên màn hình của tôi, tôi có thể thấy quả lê mờ nhạt giữa các điểm ảnh màu trắng trong hình ảnh đầu tiên, nhưng trong hình ảnh thứ hai, quả táo không thể phân biệt được với các điểm ảnh màu đen xung quanh nó.

(Bạn cũng có thể thấy một số dải màu trên quả lê được sửa chữa gamma, vì hình ảnh không được chỉnh sửa đang sử dụng phạm vi nhỏ hơn nhiều của các kênh màu.)

Tệp hình ảnh PNG chứa đoạn gAMA chỉ định giá trị gamma là 0,02. Khi được hiển thị mà không có hiệu chỉnh gamma, người xem sẽ thấy một quả táo có các pixel "trắng" xen kẽ, thực ra là quả lê ở cường độ ban đầu (cao) của nó.

Khi được hiển thị với hiệu chỉnh gamma, người xem sẽ thấy một quả lê được sửa màu với các pixel "đen" thực sự là quả táo được hiển thị với giá trị gamma thấp hơn nhiều.

Các trình duyệt hiển thị quả lê đang thực hiện hiệu chỉnh gamma trên hình ảnh, trong khi các trình duyệt hiển thị quả táo không thực hiện hiệu chỉnh gamma, nhưng chỉ hiển thị nó bằng các giá trị màu của nó.


524
2018-04-07 05:23



Một đề nghị đọc về chủ đề: bài báo nổi tiếng của Eric Brasseur được gọi là "Lỗi Gamma trong chia tỷ lệ hình ảnh. - ulidtko
@ulidtko Bây giờ là một 404. Đây là một sao chép trên Lưu trữ trên web. - Cole Johnson


Đây là một chút quá nhiều cho một bình luận, nhưng hy vọng nó sẽ giúp.

Vì vậy, tôi khá chắc chắn rằng vấn đề này đề cập đến cách trình duyệt giải thích thông tin gamma bằng PNG. Đó là một vấn đề khá thú vị và giao dịch với sự mơ hồ của thông tin gamma ngay từ đầu.

Bài viết Câu chuyện buồn về PNG Gamma “Correction” cung cấp một bản tóm tắt rất hay về các vấn đề, biện pháp khắc phục và các sự kiện thú vị khác.

Với điều đó đã nói, chúng tôi thực sự có thể loại bỏ thông tin gamma khỏi một hình ảnh bằng cách sử dụng pngcrush

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

Vì vậy, với thông tin gamma và không có nó:

pear an apple

Tôi sẽ không thực sự nói đây là "câu trả lời", nhưng nếu có gì đó có lẽ là đúng hướng. Tôi chắc chắn rằng ai đó có nhiều kiến ​​thức liên quan đến hồ sơ màu sắc và như vậy sẽ đến cùng với một phản ứng chính thức hơn.


227
2018-04-07 04:34



hai hình ảnh đó trông giống tôi, nhấp nháy giữa táo và lê giống như hình gốc trong câu hỏi. Tôi đang sử dụng Safari 6.0.2 - Fraser Graham
Lưu ý rằng hai phần tử cuối cùng của lệnh được cung cấp ở đây là infile và outfile: ví dụ. pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile.png outfile.png. Thêm thông tin: hsivonen.fi/png-gamma - fredrivett


Thay đổi gamma (γ) của một hình ảnh bao gồm việc sửa đổi gamma giá trị trong:

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

cung cấp màu pixel đầu ra (R ', G', B ') hiển thị trên màn hình sau khi áp dụng hàm gamma cho các giá trị pixel ban đầu (R, G, B) (xem R, G và B chuẩn hóa từ 0 đến 1) ).

Bây giờ, chúng ta hãy lấy kênh màu đỏ chẳng hạn.
Nếu R = R0 + R1 , bạn sẽ có được
R '= (R0 + R1)γ = R0γ * (1 + R1 / R0)γ

Nếu R0 lớn hơn R1, thì bạn có
(1 + R1 / R0)γ ≈ 1 + γR1 / R0,
vì thế R '≈ R0γ + γ


40
2018-04-07 05:38





Nó không làm tròn pixel và các cấu hình màu ICC không phải là vấn đề.

Đó là một hình ảnh lừa và một số trình duyệt hiển thị PNG không có dữ liệu gamma. Đối với những trình duyệt đó, bạn sẽ thấy một thứ và đối với các trình duyệt khác, bạn sẽ thấy hình ảnh đầy đủ (với quả lê ẩn trong nền).

Tôi thấy hình ảnh quả táo / quả lê hoặc tôi chỉ thấy quả lê, tùy thuộc vào trình duyệt có hỗ trợ dữ liệu gamma này hay không.


9
2018-04-07 05:41





cũng như nó happends, bạn có thể xem chi tiết hơn trong hình ảnh với một màn hình hiệu chỉnh đúng và nếu gamma / độ sáng / độ tương phản là cách cao, bạn có thể thấy một hình ảnh trong hình là ẩn hơn


1
2018-03-11 01:49