Запись данных калибровки цвета в файл TIFF или PNG

Моя пользовательская программа для обработки фотографий homebrew, работающая на 64-битной Linux / GNU, записывает файлы PNG и TIFF. Их нужно отправить в качественную типографию для изготовления произведений искусства. Работа с дизайнерами интерьеров - важно правильно подобрать цвета!

Типографии обычно не имеют проблем с TIFF и PNG, сделанными из коммерческого программного обеспечения, такого как Photoshop. Несмотря на то, что у меня есть спецификации TIFF 6.0, PNG и другая информация, неясно, как включить данные калибровки цвета или реализовать систему управления цветом в Linux. Мои файлы часто отклоняются как неисправные без достаточного количества отчетов об ошибках, чтобы их можно было исправить.

Некоторое время это было неприятной проблемой для многих. Даже мои знакомые в голливудских студиях постпродакшн борются с этой проблемой. Одна студия даже хотела нанять меня, чтобы я занимался их калибровкой цвета, думая, что я был экспертом - но нет, я такой же слепой и потерянный, как и все!

Кто-нибудь знает хорошие примеры кода, подробную техническую информацию или есть какие-то другие знания? Или пора переходить на чистый Apple?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
656
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Взгляните на LittleCMS

http://www.littlecms.com/

На этой странице есть код для его применения к 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 и т. д.

Но прежде чем вы углубитесь в это - вы говорите, что генерируете файлы в соответствии со спецификацией; вы проверяете свой результат с помощью набора тестов, специфичного для рассматриваемого формата? Если нет, то для начала вот три:

  1. imagetestsuite поддерживает известные форматы: https://code.google.com/p/imagetestsuite/w/list?can=1&q=

  2. Набор тестов Luminous * - это плагин JIRA, если вам это нравится: https://marketplace.atlassian.com/plugins/com.luminouslead.plugin.jira.testsuite.LuminousTestSuite

  3. В реализациях декодера 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

Другие вопросы по теме