Google
 

星期日, 4月 09, 2017

Chrome的色彩管理問題

Chrome應該算是巿佔率數一數二的瀏覽器了, 僅管它有一個大缺點: 記憶體吃很兇, 但因為瀏覽速度快(用空間換取時間), 所以雖不滿意但還可以接受。(雖然也有一些讓Chrome省記憶體的撇步, 但這不在本篇的討論之內, 有興趣的朋友可以自行Google一下)

其實Chrome一直還有一個大缺點: 很糟糕的色彩管理支援。
但這個問題可能因為大部份人對網頁上看到的色彩真實度也不是很在意, 再者要能再出這些些微的差異, 螢幕本身也不能太爛。
(經檢驗後, 這應該不是一個普遍性的問題, 隨系統環境會呈現不且的結果, 但目前不清楚關鍵在哪裡)

但如果你多花了一些錢買了一個還不錯的螢幕, 然後興沖沖地把你的照片放到網路上, 你可能會開始意識到這個問題的存在了。

下面這張圖是我在Lightroom中的影像放到IE 11(版本11.0.9600.18537)上的一個對比。左邊是在IE中呈現的結果, 撇開瀏覽器所採用的縮放演算法所造成的雜點分佈不談, 若只就顏色的表現來看, 在IE中的顏色看起來和Lightroom中看到的色彩還算接近。

但同樣一張圖把它放到Chrome(版本58.0.3029.54 beta)上顯示, 差異就很明顯。Chrome中的圖明顯飽和度過高而且偏紅。

要做這些比對, 當然前提是在系統中已經用了正確的ICC檔做了正確的設定了。而這個問題, 會隨著你所使用的螢幕所能呈現的色域愈廣, 問題就愈明顯。

關於Windows中的螢幕的色彩管理設定, 可參考這些文章:

[教學]Windows 7色彩管理檔(icc)運作不正常的解決方法

有一些網站提供了測試網頁, 可以測試你所用的瀏覽器是否支援ICC color profile。以下這個網頁是我目前看到最詳細的:

Web browser color management test

網頁的前半段 "Does your browser support v2 ICC color profiles?" 可簡單測出瀏覽器對v2 ICC color profile和v4 ICC color profile的支援。這部份IE和Chrome都是OK的。

後半段 "Additional tests" 可進一步測試瀏覽器是對不同嵌入資訊的處理結果。按照W3C的規範, 當影像嵌入資訊未描述色域時, 預設應視為sRGB色域。所以網頁中以不同嵌入資訊的RGB圖像並排, 以測試瀏覽器呈現的結果。正確的結果應該RGB上下段顏色是完全一致無色差的。

下面這是IE中呈現的結果, 完美!


下面這是Chrome中呈現的結果, 慘不忍賭!



從這些結果看起來, 似乎Chrome對Untagged image確實是把它當成sRGB色域呈現(目視看起來是純RGB), 但對有sRGB tagged的影像呈現反而不正確(做過頭了?)

這個問題目前無解, 我想除非你在影像上傳前把sRGB tag拿掉, 讓所有瀏覽器都以sRGB色域呈現, 否則在Chrome裡就是會有這個問題。只有等待Google正視這個問題, 或有善心人士提供更好的方法了!

註一:
有些網頁會提到在Chrome啟動時加上參數 "--enable-monitor-profile" 啟用Chrome的色彩管理, 但這方式是無用的。我找到的資料是在Chrome 35之後已經不支援這個參數了, 它會把它當成一個URL處理。另一個明證是, 在上述的測試中證明Chrome已經支援ICC v2, v4, 不需再透過這個參數啟動。

註二:
這問題是出現在我的Windows 7系統上, 但在其他Windows 7上看結果有是正確的。看起來問題偏向整個系統設定的問題, 但還不清楚問題出在哪裡。若有善心人士有好的建議請告知。

註三:
後來Windows 7系統重灌後, 這問題就不見了。看來應該和系統某些設定有關, 但具體是哪一個部份還不清楚。


沒有留言: