- Управление цветом в Linux
- Записная книжка рассеянного [в пространстве и времени] программиста
- Управление цветом в Linux
- Управление цветом.
- Предварительная настройка
- Монитор(ы)
- Принтер(ы)
- Управление цветом в Linux — Linux color management
- СОДЕРЖАНИЕ
- Требования к рабочему процессу с управлением цветом
- Калибровка и профилирование монитора
- Профили устройств
- Таблицы поиска каналов отображения
- Приложения с управлением цветом
- Список приложений с управлением цветом
- Устаревший
- Список программного обеспечения для профилирования ввода и вывода
- Устаревший
- Список загрузчиков LUT
- Список систем управления цветом
Управление цветом в Linux
Записная книжка рассеянного [в пространстве и времени] программиста
Управление цветом в Linux
Есть такая штука под названием “уветовые профили”. Казалось бы все о них слышали, но немногие умеют их использовать и понимают, зачем это вообще надо.
То, что мы воспринимаем как свет — это лишь электромагнитные колебания с длиной волны от 380-400 нм до 760-780 нм. В этом диапазоне смешались все цвета от красного к филетовому.
Когда мы видим радугу, то мы видим весь спектр цветов. А вот несовершенные электронные приборы могут отобразить лишь определенные цвета радуги. Называется это цветовым охватом — множество доступных для восприятия человеческим глазом цветов, которые способно воспроизвести устройство. У всей техники разные диаграммы цветопередачи.
Именно поэтому для каждого устройства в системе нужно задать цветовой профиль, который как раз и описывает диапазон цветового охвата.
Почему это важно? Можно пояснить на примере двух инженеров у одного из которых линейка метрическая, а у второго дюймовая. Если один другому скажет, что нужно начертить линию длиной два, то случится нечто странное: линия будет иметь длину два, но в той системе измерений, в которой работает человек.
То же самое с техникой. Если для нас цвето RGB(200, 0, 0) — это красный с каким-то уровнем насыщенности, то для принтера он может быть совершенно другим. Поэтому перед печатью все должно быть сконвертировано с учетом цветового профили устройства.
Подводя итог: цветовой профиль — это правила конвертации цвета из общепризнанной цветовой модели в ту, с которой работает ваша техника.
Когда мы просто печатаем текст на компьютере, то нас не сильно волнует, как это се конвертируется, но когда при печати фотографии мы получим цвета, которых на экране не видели, то пора что-то менять. 🙂
Управление цветом.
Предварительная настройка
Описываемые ниже шаги рассказывают о том,как реализованы подобные настройки на нижнем уровне. Если вы используете DE, в которых есть механизмы управления мониторами, то нижеописанные действия по настройке вам не нужны.
Всю работу по настройке связки устройство-профиль в никсах берет на себя демон colord. Именно он управляет базой данных цветовых профилей.
Будем рассматривать как это работает на примере Fedora GNU/Linux.
Если демона нет в списке юнитов, то его надо поставить и добавить в список автоматически-запускаемых (В большинстве сборок федоры все уже сделано до вас и эти шаги не требуются).
Проверим, что сервис установлен.
Для gnome и kde все уже сделано и в панели управления есть подраздел управления цветовыми профилями, но для lxde (xmonad, i3, etc.) нужно добавить менеджер управления цветом ибо встроенных средств у этих средств нету.
Единственным на сегодня механизмом является демон xiccd. Компилить его из исходников нет надобности — можно поставить через corp.
После установки нужно перезайти в систему (софт прописывается в автостарт автоматически), либо запустить xiccd руками.
Проверить правильность работы можно командой
Если все хорошо, то среди устройств должен быть ваш монитор.
Можно посмотреть переменную _ICC_PROFILE (именно она хранит интересующие нас данные).
Вывод будет выглядить как-то так:
У иксов есть баг, который не позволяет устанавливать профили монитора для интеловских видеокарт,
Решается принудительным прописыванием информации о драйвере в конфиг иксов /etc/X11/xorg.conf.d/20-intel.conf.
Если этого не сделать, то при попытке применить профиль к монитору мы получим сообщение об ошибке.
Монитор(ы)
Для удобства нам потребуется поставить систему управления agryllcms — в ней есть удобная команда dispwin.
Не будем затрагивать процесс калибровки — это тема хорошо расписана в вики арча.
В первую очередь нужно добыть цветовые профили для своих мониторов и принтеров (и сканеров). Их можно скачать на сайте производителя или найти в интернете на сайтах подобных tftcentral.
Для добавления файла в базу вводим простую команду импорта.
Если все прошло хорошо, то команда выдаст нам несколько строк, среди которых будет Profile ID. Её нужно запомнить так как именно по этому идентификатору мы будем ассоциировать файл с оборудованием.
Повторяем так для каждого скачанного профиля. Все они будет импортированы в каталог
Теперь нужно найти монитор при помощи команды
На экране будет отображен список устройств и нам нужно запомнить параметр device id для каждого монитора.
Ассоциирование устройства и профиля выполняется командой
А установка профиля по-умолчанию
Применить профиль без перезагрузки машины можно командой
Номер монитора можно узнать в справке dispwin.
Важно отметить, что далеко не все профили от производителей идут с заполненными lut-таблицами (это таблицы кривых rgb, который загружаются в память видиокарты).
Если таблицы нет, что при попытке применить профиль мы увидим сообщение
Это есть настройки гаммы, которую всегда можно осуществить вручную.
С мониторами разобрались. При следующей загрузке будут применены корректные профили.
Принтер(ы)
С принтерами все несколько сложнее. Не все поддерживают демон настроек colord. Gutenprint поддерживает :). От него и будем отталкиваться (да и большинство hp при растеризации используют цветовые профили).
Как вообще это происходит: изображение отправляется на печать, а cups выполняет растеризацию и преобразование изображения в нужное цветовое пространство (настройки самого пространства берутся из colord).
И тут кроется один нюанс. Выполним просмотр доступных профилей при помощи colormgr.
У всех мы видим строку с характеристикой system wide. Настройки принтера обязаны быть system wide иначе он просто откажется работать.
А для этого нам нужно положить все icc\icm в /usr/share/color/icc/ (можно и нужно создать подкаталог, например printerProfiles). А затем на все дать права чтения и установить владельца root.
После этого ничего работать не будет. А в логах мы найде сообщения об ошибке.
Но при этом файл будет лежать по указанному пути. Все дело в контексте SeLinux. Посмотрим внимательнее на содержимое каталога.
Было добавлен файл XP330.icm. Мы видим, что контекст файла сильно отличается от того, что у всех остальных. Это и есть причина, по которой cups (а конкретно gutenprint) не может открыть профиль.
Поправим это при помощи restorecon.
Поправили и теперь нужно перезагрузить colord.
Выполнив команду colormgr get-profiles мы увидим среди всех зарегистрированнх icc нащ, который положили выше. И у него будет установлен признак system wide, что и требовалось.
В выводе устройств colormgr get-devices находим наш принтер, связываем его и icc.
Источник
Управление цветом в Linux — Linux color management
Управление цветом в Linux преследует ту же цель, что и системы управления цветом (CMS) для других операционных систем: добиться наилучшего воспроизведения цвета на протяжении всего рабочего процесса обработки изображений из источника (камера, видео, сканер и т. Д.) С помощью программного обеспечения для обработки изображений ( Digikam , darktable , RawTherapee , GIMP , Krita , Scribus и т. д.), и, наконец, на выходной носитель ( монитор , видеопроектор , принтер и т. д.). В частности, управление цветом пытается обеспечить согласованность цвета на разных носителях и во всем рабочем процессе с управлением цветом.
Управление цветом Linux основано на использовании точных ICC ( International Color Consortium ) и DCP (DNG Color Profile) профилей , описывающих поведение устройств ввода и вывода, а также управления цветом приложений , которые знают об этих профилях. Эти приложения выполняют преобразование гаммы между профилями устройств и цветовыми пространствами . Преобразование гаммы, основанное на точных профилях устройств, является сутью управления цветом.
Исторически управление цветом не входило в начальную конструкцию системы X Window, на которой основывается большая часть графической поддержки Linux, и, таким образом, рабочие процессы с управлением цветом было несколько сложнее реализовать в Linux, чем в других ОС, таких как Microsoft Windows или macOS . В настоящее время эта ситуация постепенно исправляется, и управление цветом в Linux, хотя и функционирует, еще не приобрело зрелого статуса. Хотя теперь можно получить согласованный рабочий процесс с управлением цветом в Linux, некоторые проблемы все еще остаются:
- Отсутствие центральной пользовательской панели управления настройками цвета.
- Некоторым аппаратным устройствам для калибровки цвета не хватает драйверов Linux, прошивки или дополнительных данных.
Поскольку цветовые профили ICC написаны в открытой спецификации, они совместимы с разными операционными системами. Следовательно, профиль, созданный в одной ОС, должен работать в любой другой ОС при наличии необходимого программного обеспечения для его чтения и выполнения преобразования гаммы. Это можно использовать в качестве обходного пути при отсутствии поддержки некоторых спектрофотометров или колориметров в Linux: можно просто создать профиль в другой ОС, а затем использовать его в рабочем процессе Linux. Кроме того, определенное оборудование, такое как большинство принтеров и определенные мониторы, можно откалибровать под другой ОС, а затем использовать в рабочем процессе с полным управлением цветом в Linux.
Популярный дистрибутив Ubuntu Linux добавил начальное управление цветом в выпуске 11.10 (выпуск «Oneiric Ocelot»).
СОДЕРЖАНИЕ
Требования к рабочему процессу с управлением цветом
- Точные профили устройств, полученные с помощью программного обеспечения для определения характеристик источника или выхода.
- Правильно загруженные LUT видеокарты (или профили монитора, не требующие настройки LUT).
- Приложения с управлением цветом, настроенные для использования правильного профиля монитора и профилей ввода / вывода, с поддержкой контроля над целью рендеринга и компенсацией черной точки.
Для калибровки и профилирования необходимы:
- для устройств ввода (сканер, камера и т. д.) цветовая мишень, которую программа профилирования сравнивает со значениями цвета, предоставленными производителем.
- или для устройств вывода (монитор, принтер и т. д.) — считывание определенным устройством ( спектрофотометр , колориметр или спектроколориметр) значений цветовых пятен и сравнение измеренных значений со значениями, изначально отправленными для вывода.
Калибровка и профилирование монитора
Одним из критических элементов в любом рабочем процессе с управлением цветом является монитор, потому что на том или ином этапе обработка и адаптация цвета с помощью программного обеспечения для обработки изображений требуется для большинства изображений, поэтому способность монитора отображать точные цвета имеет решающее значение.
Управление цветом монитора состоит из калибровки и профилирования.
Первый шаг, калибровка, выполняется путем настройки элементов управления монитора и вывода графической карты (с помощью калибровочных кривых) в соответствии с определяемыми пользователем характеристиками, такими как яркость, точка белого и гамма. Настройки калибровки хранятся в .cal файле. Второй шаг, профилирование (определение характеристик), включает измерение отклика откалиброванного дисплея и запись его в цветовом профиле. Профиль сохраняется в .icc файле («ICC-файл»). Для удобства настройки калибровки обычно хранятся вместе с профилем в файле ICC.
Обратите внимание, что .icm файлы идентичны .icc файлам — разница только в названии.
Чтобы видеть правильные цвета, необходимо использовать приложение, поддерживающее профиль монитора, а также ту же калибровку, которая использовалась при профилировании монитора. Сама по себе калибровка не дает точных цветов. Если монитор был откалиброван до профилирования, профиль будет давать правильные цвета только при использовании на мониторе с той же калибровкой (те же настройки управления монитором и те же калибровочные кривые, загруженные в справочную таблицу видеокарты). macOS имеет встроенную поддержку для загрузки калибровочных кривых и установки общесистемного цветового профиля. Windows 7 и более поздние версии позволяют загружать калибровочные кривые, хотя эту функцию необходимо включать вручную. Linux и более старые версии Windows требуют использования автономного загрузчика LUT.
Профили устройств
Профили ICC являются кросс-платформенными, поэтому их можно создавать в других операционных системах и использовать в Linux. Однако профили монитора требуют дополнительного внимания. Поскольку профиль монитора зависит как от самого монитора, так и от видеокарты, профиль монитора следует использовать только с тем же монитором и видеокартой, с помощью которых он был создан. Настройки монитора не следует изменять после создания профиля. Кроме того, поскольку большинство программ калибровки используют настройки LUT во время калибровки, соответствующие LUT должны загружаться каждый раз при запуске сервера отображения (X11, Wayland) (например, при каждом входе в систему с графическим интерфейсом).
В маловероятном случае, если колориметр не поддерживается Linux, профиль, созданный в Windows или macOS, можно использовать в Linux.
Таблицы поиска каналов отображения
Есть два подхода к загрузке LUT каналов отображения:
- Создайте профиль, который не изменяет LUT видеокарты и, следовательно, не требует загрузки LUT позже. В идеале этот подход должен основываться на мониторах с поддержкой DDC, внутренние настройки монитора которых устанавливаются с помощью программного обеспечения для калибровки. К сожалению, мониторы, способные выполнять эти настройки через DDC, встречаются нечасто и, как правило, дороги. В Linux есть только одно программное обеспечение для калибровки, которое может взаимодействовать с монитором DDC . Для обычных мониторов существует несколько вариантов:
- Программное обеспечение BasICColor, которое работает с большинством колориметров, представленных на рынке, позволяет настраивать вывод изображения через интерфейс монитора , а затем выбирать параметр «Профиль, не калибровать». Таким образом можно создать профиль, не требующий настройки LUT видеокарты .
- Для устройств EyeOne функция EyeOne Match позволяет пользователю откалибровать «исходную» гамму и цели белой точки, в результате чего кривые настройки LUT отображаются после калибровки в виде простого линейного отображения 1: 1 (прямая линия от угла к углу) .
- И BasICColor, и EyeOne Match в настоящее время не работают под Linux, но они могут создавать профиль, который не требует настройки LUT.
- Используйте загрузчик LUT, чтобы фактически загрузить настройки LUT, содержащиеся в профиле, подготовленном во время калибровки. Согласно документации, эти загрузчики не изменяют LUT видеокарты сами по себе, но достигают того же типа настройки, изменяя гамма-кривую X-сервера. Загрузчики доступны для дистрибутивов Linux , использующих X.org или XFree86 — два самых популярных X-сервера в Linux. Работа других X-серверов с доступными в настоящее время загрузчиками не гарантируется. Для Linux доступны два загрузчика LUT:
- Xcalib — один из таких загрузчиков, и хотя это утилита командной строки, им довольно легко пользоваться.
- dispwin является частью Argyll CMS.
- Если по какой-либо причине LUT не может быть загружен, все же рекомендуется пройти начальные этапы калибровки, когда программное обеспечение для калибровки просит пользователя внести некоторые ручные настройки в монитор, поскольку это часто улучшает линейность отображения, а также предоставьте информацию о его цветовой температуре . Это особенно рекомендуется для ЭЛТ-мониторов.
Приложения с управлением цветом
В приложениях с поддержкой ICC важно убедиться, что устройствам назначены правильные профили, в основном монитору и принтеру. Некоторые приложения Linux могут автоматически определять профиль монитора, в то время как другие требуют, чтобы он был указан вручную.
Хотя в Linux нет специального места для хранения профилей устройств, /usr/share/color/icc/ оно стало стандартом де-факто .
Большинство приложений, работающих под управлением WINE , не были полностью протестированы на точность цветопередачи. В то время как программы с 8- битным пикселем могут иметь некоторые трудности с цветовым разрешением из-за ошибок преобразования глубины, цвета в приложениях с более высокой глубиной должны быть точными, если эти программы выполняют преобразование цветовой гаммы на основе того же профиля монитора, который используется для загрузки LUT, при условии, что загружены соответствующие настройки LUT.
Список приложений с управлением цветом
- darktable , разработчик необработанных фотографий и плагин GIMP .
- digiKam , органайзер изображений и редактор тегов .
- Firefox , веб-браузер с управлением цветом, начиная с версии 3, включен по умолчанию, начиная с версии 3.5.
- GIMP , редактор растровой графики .
- Geeqie , просмотр изображений и организатор изображения .
- Krita и Карбон , редактор изображений и редактор векторной графики , соответственно (части Calligra люкс , с графикой и офисный пакет ).
- LightZone , разработчик необработанных фотографий.
- Opera , веб-браузер.
- RawTherapee , разработчик необработанных фотографий и плагин для GIMP .
- Scribus , приложение для настольных издательских систем (DTP).
- Siril , программа обработки астрономических изображений.
- UFRaw , разработчик необработанных фотографий и плагин GIMP .
Устаревший
- CinePaint , устаревший 16-битный редактор изображений.
- F-Spot , устаревший органайзер изображений .
- Bibble Pro , устаревшая программа для созданиянеобработанныхцифровых изображений . Продан Corel, переименован в Aftershot Pro.
- Phatch , устаревший редактор растровой графики, используемый для пакетной обработки изображений.
Список программного обеспечения для профилирования ввода и вывода
- Система управления цветом Argyll (Argyll CMS) — это набор инструментов с открытым исходным кодом, предназначенный только для командной строки. Argyll CMS покрывает широкий спектр потребностей, от определения характеристик источника или вывода до мониторинга загрузки LUT и многого другого. Argyll CMS доступен в виде пакета в Ubuntu, Debian , openSUSE (служба сборки) и Fedora, а также в виде стандартной двоичной установки Linux x86 с веб-сайта вместе с исходным кодом под лицензией GPL .
- DisplayCAL — это решение для калибровки и профилирования дисплея с открытым исходным кодом с графическим интерфейсом пользователя, в основе которого лежит ArgyllCMS. Он позволяет калибровать и характеризовать дисплей, генерировать профили ICC с дополнительными сопоставлениямигаммыCIECAM02 и 3D LUT , генерировать отчеты для профилей ICC, измерять однородность устройства отображения, создавать и редактировать тестовые диаграммы и, среди прочего, даже создавать синтетические профили ICC.
- DCamProf — это инструмент командной строки с открытым исходным кодом для создания профилей камеры ICC и DCP (DNG Color Profile) на основе измерений тестовой цели или функций спектральной чувствительности камеры. Функции включают в себя предоставление пользователю контроля над матрицей и оптимизаторами LUT для ручной настройки компромисса между точностью и плавностью, сопоставлением профилей, генерацией отчетов для построения графиков, моделированием спектров отражения, анализом характеристик цветоделения камеры при различных источниках света и ровным полем. коррекция фото тест-листа.
Устаревший
- LPROF (или LCMS Profiler) был инструментом с графическим интерфейсом для создания профилей для камер, сканеров и мониторов. LPROF изначально был разработан для демонстрации возможностей LittleCMS (LCMS). В 2005 году разработка LPROF была возобновлена новой командой, которая выпустила окончательную версию в 2006 году, когда разработка была прекращена.
Список загрузчиков LUT
Файл цветового профиля для монитора обычно состоит из двух частей:
- Часть VCGT / LUT, которая выполняет коррекцию белой точки и применяется ко всему экрану в целом.
- Часть матрицы гамма +, которая выполняет коррекцию гаммы / оттенка / насыщенности и должна применяться отдельными приложениями с управлением цветом.
В настройке с управлением цветом часть VCGT / LUT обычно загружается при входе в систему, в то время как имя файла цветового профиля сохраняется в _ICC_PROFILE атоме X, так что программы с управлением цветом могут загружать его в качестве профиля по умолчанию для применения поправок гамма + матрица. Некоторые программы также позволяют вам переопределить, какой профиль используется для коррекции гамма + матрицы.
- dispwin, используемый для одновременной загрузки атомов VCGT / LUT и _ICC_PROFILE. Часть ArgyllCMS.
- xcalib , крошечный загрузчик калибровки монитора для XFree86 (или X.Org) и MS-Windows, который устанавливает VCGT / LUT монитора часть цветового профиля
- xiccd , демон, который взаимодействует с colord и устанавливает _ICC_PROFILE атом X на путь вашего цветового профиля для программных корректировок гамма + матрицы. Обратите внимание, что GNOME и KDE уже сообщают colord, если вы установили профиль в их настройках, тогда как XFCE не имеет встроенного взаимодействия с colord.
Список систем управления цветом
управление цветом
colord — это системный демон, который упрощает управление, установку и создание цветовых профилей для точного управления цветом на устройствах ввода и вывода.
colord предоставляет API D-Bus для системных фреймворков для запросов, предлагая, например, возможность получить профили для данного устройства или создать устройство и назначить ему данный профиль. colord предоставляет постоянное хранилище на основе базы данных, которое сохраняется при перезагрузках, и предоставляет сеанс для способа установки системных настроек, например, настройки профиля отображения для всех пользователей и всех сеансов.
GNOME Color Manager и colord-kde — это графические инструменты для colord, которые можно использовать в средах рабочего стола GNOME и KDE. Каждый выступает в роли клиента для окраски.
Источник