2014-10-28 125 views
0

我正在寫一個TIFFImageReader插件,用於Java(ImageIO),但問題是通用的:如何處理與不兼容的ICC色彩TIFF文件型材

什麼是「正確」的方式來處理TIFF文件包含與圖像數據不匹配的ICC顏色配置文件(即,圖像數據是RGB,但TIFF元數據包含CMYK ICC配置文件)?

我最近有一個用戶報告這個問題。快速簡單的解決方法是隻發出警告,並忽略顏色配置文件。但是,TIFF 6.0規範完全沒有提及ICC配置文件,或者如何處理它們。 ICC Specification ICC.1:2010-12, annex B確實描述瞭如何正確嵌入顏色配置文件,但沒有提及配置文件與圖像數據的關係(除了處於相同的IFD之外)。

+0

@BitBank,我指望着你...... ;-) – haraldK 2014-10-28 09:57:28

回答

1

作爲一個普遍問題,沒有「正確」的方法來處理這個問題。

的顏色配置文件將告訴您如何連接RGB數字,我自己都只是抽象值,像CIE XYZ或CIELAB與設備無關的空間,這樣你就可以正確地將其解釋爲顏色並顯示它們一致的方式。

如果配置文件不正確(或者沒有配置文件),則無法知道如何解釋RGB數字。這有點像沒有單位不正確單位的體重測量。如果我有一個需要5單位水的食譜,並且你不知道這是5克還是5杯,那麼你有點卡住了。你可以猜測或告訴用戶他們的信息沒有意義。

在很多情況下,您可以根據特定於域的信息進行有根據的猜測。例如,我們經常可以正確猜測,沒有配置文件的web上的圖像可能是sRGB數據,但這只是一個猜測。很多人想要一個餅乾配方,要求1個麪粉可能意味着1杯麪粉。

這是非常 RGB圖像攜帶一個CMYK配置文件不尋常 - 它真的很難理解甚至發生。如果我必須處理這個問題,我會提出一個關於這個問題的消息。如果色彩準確性不重要,您還可以剝離配置文件,讓任何下游過程需要顯示圖像以處理未加標籤的圖像,或者根據理解這僅僅是猜測來猜測sRGB等合理的內容。

+0

當我說「正確」時,我應該說,「事實上的方式是什麼」,或者「其他軟件是做什麼的」。 CMYK ICC配置文件的RGB圖像當然是一個錯誤,但是如果軟件編輯圖像並認爲它可以保留元數據,就會發生這種情況。我正在製作一個圖書館,所以我不能假定色彩的準確性是否很重要。所以我認爲我會堅持發出警告,並假定sRGB(與我沒有配置文件的圖像一樣)。 – haraldK 2015-02-15 14:24:45

+0

PS:哇。希望我能像你一樣拍攝照片,男人...... :-) – haraldK 2015-02-15 14:25:08