Моя пользовательская программа для обработки фотографий homebrew, работающая на 64-битной Linux / GNU, записывает файлы PNG и TIFF. Их нужно отправить в качественную типографию для изготовления произведений искусства. Работа с дизайнерами интерьеров - важно правильно подобрать цвета!
Типографии обычно не имеют проблем с TIFF и PNG, сделанными из коммерческого программного обеспечения, такого как Photoshop. Несмотря на то, что у меня есть спецификации TIFF 6.0, PNG и другая информация, неясно, как включить данные калибровки цвета или реализовать систему управления цветом в Linux. Мои файлы часто отклоняются как неисправные без достаточного количества отчетов об ошибках, чтобы их можно было исправить.
Некоторое время это было неприятной проблемой для многих. Даже мои знакомые в голливудских студиях постпродакшн борются с этой проблемой. Одна студия даже хотела нанять меня, чтобы я занимался их калибровкой цвета, думая, что я был экспертом - но нет, я такой же слепой и потерянный, как и все!
Кто-нибудь знает хорошие примеры кода, подробную техническую информацию или есть какие-то другие знания? Или пора переходить на чистый Apple?





Взгляните на LittleCMS
На этой странице есть код для его применения к TIFF
http://www.littlecms.com/newutils.htm
Вам необходимо знать, что данные цветового профиля - это то, что вам нужно хранить в метаданных самого файла.
Есть консультант по имени Чарльз Пойнтон, который специализируется в этой области. Я работаю в одной из упомянутых вами студий постпродакшна (хотя и в Лондоне, а не в Голливуде) и пару раз видел, как он говорил на эту тему. Его веб-сайт содержит много материалов, которые он представляет, и вы можете найти там что-нибудь полезное. У него также есть книга под названием Алгоритмы и интерфейсы цифрового видео и HDTV, которая не такая тяжелая, как можно было бы предположить по названию! Хотя эти ресурсы могут не дать прямого ответа на ваш вопрос, они могут стать трамплином для других решений.
В частности, какие библиотеки вы используете для записи файлов png и tif - вы упомянули, что они доморощенные, но насколько они индивидуальны? Постобработка изображений в программе обработки изображений (например, ImageMagick или dcraw) может позволить вам более успешно вводить эту информацию в заголовок.
Извините, у меня нет конкретных ответов, но, возможно, что-то, что укажет вам немного дальше в правильном направлении ...
Как пользователь GNU / Linux, вы захотите рассмотреть DispcalGUI - http://dispcalgui.hoech.net/ - графический интерфейс на основе GNOME, который централизует управление цветом, управление профилями ICC и (что особенно важно в вашем случае) калибровку устройства. Он может взаимодействовать с хорошо известным оборудованием профессионального и среднего уровня, например, i1, X-Rite, Spyder и т. д.
Но прежде чем вы углубитесь в это - вы говорите, что генерируете файлы в соответствии со спецификацией; вы проверяете свой результат с помощью набора тестов, специфичного для рассматриваемого формата? Если нет, то для начала вот три:
imagetestsuite поддерживает известные форматы: https://code.google.com/p/imagetestsuite/w/list?can=1&q=
Набор тестов Luminous * - это плагин JIRA, если вам это нравится: https://marketplace.atlassian.com/plugins/com.luminouslead.plugin.jira.testsuite.LuminousTestSuite
В реализациях декодера FLOSS часто есть тот, который вы можете использовать, например, OpenJPEG - https://code.google.com/p/openjpeg/wiki/TestSuiteDocumentation.
Но даже если исключить все это, похоже, что ваша проблема связана с встроенные данные ICC - это две спецификации в одной. Во-первых, это основной формат файла изображения, и все они обрабатывают встраивание по-разному (это означает, что данные ICC, вероятно, будут выглядеть совершенно иначе при внедрении в TIFF, чем, скажем, в файл JPEG или WebP). Во-вторых, это сама спецификация ICC. Он задокументирован здесь: http://color.org/v4spec.xalter - и вы также можете посмотреть источник вышеупомянутого dispcalGUI, который включает в себя очень разборчивый и поддающийся взлому класс профиля ICC в Python: http://sourceforge.net/p/dispcalgui/code/HEAD/tree/trunk/dispcalGUI/ICCProfile.py
Полное раскрытие: Я внес свой вклад к тому самому классу профиля ICC, с которым я только что связался в том последнем ¶
Это основы (многие из которых вы, без сомнения, охватили) ... кроме того, если вы опубликуете дополнительную информацию о том, что именно происходит не так, мне было бы интересно ее просмотреть. Удачи в любом случае.
* NB. This project is unrelated to the long-standing photography website, “the Luminous Landscape”