2014-10-28 2 views
0

Я пишу TIFFImageReader плагин для Java (ImageIO), но вопрос носит общий характер:Как бороться с TIFF-файлами с несовместимым цветом ICC профили

Что такое «правильный» способ иметь дело с файлом TIFF который содержит цветовой профиль ICC, который не соответствует данным изображения (т. е. данные изображения RGB, но метаданные TIFF содержат профиль ICC CMYK)?

У меня недавно был пользователь, сообщивший об этой проблеме. Быстрое и простое исправление - просто выпустить предупреждение и игнорировать цветовой профиль. Однако в спецификации TIFF 6.0 не упоминаются профили ICC вообще или как с ними бороться. ICC Specification ICC.1:2010-12, annex B описывает, как правильно встраивать цветовые профили, но не упоминает отношение профиля к данным изображения (кроме того, что он находится в одной и той же ИФД).

+0

@BitBank, я рассчитываю на вас .. ;-) – haraldK

ответ

1

Нет «правильного» способа борьбы с этим как общей проблемой.

Профиль цвета говорит вам, как подключить номера RGB, которые мои сам просто абстрактные значения, к аппаратно-независимым пространству, как CIE XYZ или CIELAB, так что вы можете правильно интерпретировать их как цвета и отображать их в последовательный путь.

С неправильным профилем (или без профиля, если на то пошло) вы не знаете, как интерпретировать номера RGB. Это немного похоже на получение измерения веса без единиц с неправильными единицами. Если у меня есть рецепт, который требует 5 единиц воды, и вы не знаете, должно ли это быть 5 граммов или 5 чашек, вы как бы застряли. Вы можете либо догадаться, либо сообщить пользователю, что их информация не имеет смысла.

Во многих случаях вы можете сделать обоснованное предположение, основанное на информации, относящейся к домену. Например, мы часто можем правильно предположить, что изображения в Интернете без профиля, скорее всего, будут данными sRGB, но это всего лишь предположение. Очень похоже на принятие рецепта куки, который требует 1 муку, вероятно, означает 1 стакан муки.

Это очень необычное изображение RGB для переноса профиля CMYK - это действительно сложно понять, как это происходит. Если бы мне пришлось иметь дело с этим, я бы бросил ошибку с сообщением о проблеме. Если точность цвета не является критичной, вы также можете лишить профиль и позволить любому процессу нисходящего процесса отображать изображение с немаркированным изображением или угадывать что-то разумное, как sRGB, при том понимании, что это просто догадка.

+0

Когда я говорю «правильно», я должен, вероятно, сказать: «что такое де-факто» или «что делает другое программное обеспечение». RGB-изображение с профилем ICY CMYK, конечно, является ошибкой, но может случиться, если программное обеспечение, редактирующее изображение, и думает, что оно может просто оставить метаданные как есть. Я создаю библиотеку, поэтому не могу предположить, важна ли точность цвета или нет. Поэтому я думаю, что буду придерживаться предупреждения и принять sRGB (так же, как и с изображениями, которым не хватает профиля). – haraldK

+0

PS: Ого. Жаль, что я не мог снимать фотографии вроде тебя, мужчина .. :-) – haraldK

Смежные вопросы