- Управление цветом в Linux
- Записная книжка рассеянного [в пространстве и времени] программиста
- Управление цветом в Linux
- Управление цветом.
- Предварительная настройка
- Монитор(ы)
- Принтер(ы)
- Цветовые профили монитора
- ICC profiles (Русский)
- Contents
- Генерация профиля
- Колориметр или спектрофотометр
- Argyll CMS
- Калибровка и профилирование монитора с помощью дополнительного калибровочного оборудования
- Калибровка сканера
- Калибровка принтера
- Передача файла
- Gnome Color Manager
- Инструкция
- LPROF ICC Profiler
- Калибровка монитора
- Профилирование монитора без дополнительного устройства калибровки
- ThinkPads
- Загрузка ICC профилей
- xcalib
- Пример Xinitrc
- «>Пример JWM
- dispwin
- Пример Xinitrc
- _2″>Пример JWM
Управление цветом в 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.
Источник
Цветовые профили монитора
Вобщем начало истории тут — Выбора тред IPS vs VA
А теперь я не могу его откалибровать. Точнее профилировать. Можно вять колориметр, но толку — профили тупо не устанавливаются. Ни одна из прог у меня не смогла создать профиль который бы получилось установить — софтины либо молча ничего не делают, либо жалуются на отсутствие тега vcgt:
Он просто его не применяет. Ошибок не выводит но и не меняется ничего. Вывод остается линейным. (((
А откуда профиль вообще?
Конкретно этот из восьмой венды — от стандартной проги цветокоррекции. Но такова же судьба профилия этой модели из репов, профиля с диска производителя, профиля генерируемого Lprof, профиля генерируемого CLTest и еще одного профиля скаченного из сети. Есть правда пара профилей из сети которые применяется корректно. Но они ужасны, да и от других моделей — от 2450 (вроде таже матрица) и от 2750 (тут не знаю та же или нет).
Тут вроде все описано, но я ничерта не понял — вы можете установить профиль без vcgt — тогда ничего не изменится в видеокарте. Это че?
Почему в офтопике я вижу изменения, а в убунте нет? Линукс умеет гамма-коррекцию только в видюхе? А где ее делает венда если не в видюхе? Короче ничерта не понял. (((
А нет возможности одолжить калибратор у кого-нибудь и сделать калибровку конкретно на этом мониторе?
Вот в данный момент и ищу возможность. Но хочу вначале с профилями разобраться. Ну представь — возьму калибратор и что? Он создаст профили которые так же не будут применяться. А когда я разбирусь в чем дело, может они мне не понравятся или с ними еще что-то не так будет. И опять идти калибратор брать?
Ну представь — возьму калибратор и что? Он создаст профили которые так же не будут применяться.
Тот факт, что в интернете ты нашёл профили, которые применяются, даёт надежду.
Бери человека с калибратором. Обычно тот, у кого он есть, уже прошёл квест.
Кстати, оффтоп, а ты не в курсе, как в XP профиль применить? У меня не вышло, ничего не поменялось.
Не — я про то как в восьмерке в интернете прочел. А как XP выглядит я уже и забыл. Восьмерка просто под рукой валялась — я вообещ офтопиком как таковым не пользуюсь.
Кстати, а может и применился но так же как и у меня? С линейными кривыми для LUT? Я помню что когда у меня XP была я пробовал несколько раз их тыкать — тоже ничего не менялось.
Вобщем весь расклад я понял пока так — то что сохраняется в профиль, всего лишь параметры пересчета для цветов при выводе их на данный монитор для программ поддерживающих профили. А полностью изменить гамму вывода по цветам можно лишь записью соответствующих данных в LUT видеокарты. При этом эти данные могут быть как сохранены в профиль в тэг vcgt, так могут быть и загружены программой в LUT напрямую.
Теперь вот весь вопрос как заставить софт сохранять данные для LUT в профиль.
Вобщем проблему с ручной калибровкой решил.
РЕШЕНИЕ:
Любой программой настраиваем LUT видеокарты. Можно даже вендовой. Например Lutcurve отлично работает из под wine и вполне себе меняет LUT.
После этого в консоли:
man’ы как обычно рулят. Но нужно теоретическое понимание процесса.
LUT сохраняются после перезагрузки?
Нет. Нужно в автозагрузку добавить.
Я не совсем это имел в виду. Ты написал в решении, что сначала заполняются LUT, возможно в винде, а потом dispwin’ом сохраняются в файл профиля. Ну так вот, если заполнение в винде, а dispwin в (гну)линуксе, то между этими действиями как минимум одна перезагрузка. И вот тут я не понимаю, как.
Почему в венде? В Linux. Тот же Lutcurve отлично пишет в LUT работая под wine. CLTest тоже, но иногда подглючивает.
Кстати dispwin есть и для венды. Это же часть Argyll.
А, теперь ясно. Меня просто смутила строчка «Любой программой настраиваем LUT видеокарты. Можно даже вендовой.»
Я что-то не очень понял как можно скормить файл LightCurve.lut тому же dispwin’у. Ругается что это некорректный профиль и вообще ничего не делает. Debian.
У меня с того же тема началась. На большую часть профилей он ругается как на некоректные. Но те что создает сам грузит отлично.
Вы написали, что можно настроить LUT через LutCurve, а потом загрузить его через dispwin. На выходе получается файл LutCurve.lut (а не файл *.cal как у вас в посте), но он не загружается линузовыми утилитами.
Настроить LutCurve, а потом ВЫГРУЗИТЬ dispwin ( dispwin -s ./lutstate.cal ). Не брать файл который создает LutCurve — брать тот что создал dispwin.
Т.е. вы настроили, LutCurve внес изменения и вы в консоли тыц: dispwin -s ./lutstate.cal и потом этот lutstate.cal и грузить.
Эврика! Я просто спутал -s и -S. Огромнейшее спасибо!
Источник
ICC profiles (Русский)
Поскольку это относится к общему использованию настольных систем, ICC профиль представляет собой двоичный файл, который содержит точные данные о цветовых атрибутах ввода или устройства вывода. Один или несколько профилей могут быть применены к системе и ее устройствам для получения согласованных и повторяемых результатов для редактирования и публикации графики и документов. Профили ICC обычно откалиброваны с помощью (трехцветного) колориметра или спектрофотометром, когда требуется абсолютная точность цветопередачи.
Contents
Генерация профиля
Управление цветом — это рабочий процесс калибровки оборудования, программного профилирования и встраивания профиля в изображение или видео. Все это основано на использовании ICC профиля.
Колориметр или спектрофотометр
Настоятельно рекомендуется использовать колориметр или спектрометрическое устройство для калибровки оборудования, печати принтера и сканера. Для домашнего использования доступно несколько недорогих колориметров. Некоторые из них хорошо или даже лучше поддерживаются в Linux, чем в других операционных системах. Часто рекомендуемыми устройствами являются X-Rite ColorMunki Display, DataColor Spyder5 Express и устройство с открытым исходным кодом ColorHug. Вы можете найти другие поддерживаемые Linux устройства, перечисленные в документации к AgyllCMS.
Argyll CMS
Система управления цветом Argyll — это полный набор инструментов для создания и загрузки профиля в командной строке, перечисленных в разделе argyllcms .
Ознакомьтесь с официальной документацией Argyll CMS, чтобы узнать, как профилировать выбранные устройства.
Калибровка и профилирование монитора с помощью дополнительного калибровочного оборудования
Существует интерфейс GUI для ArgyllCMS, называемый DisplayCal, доступный как displaycal . В большинстве случаев вам подойдут настройки по умолчанию. Это обычный способ калибровки цвета при дневном свете 6500К и гаммой 2,2. Подробнее читайте в документации DispalGui. Многие учебные пособия доступны в сети.
Калибровка сканера
Калибровка принтера
Передача файла
Генерация профиля в системе Windows или macOS является одним из самых простых и наиболее рекомендуемых способов получения ICC профиля для монитора. Поскольку цветовые профили ICC записываются в открытую спецификацию, они совместимы в разных операционных системах. Передача профилей из одной ОС в другую может быть использована в качестве обходного пути из-за отсутствия поддержки определенных спектрофотометров или колориметров в Linux: можно просто создать профиль на другой ОС, а затем использовать его в рабочем процессе Linux. Обратите внимание, что система, на которой создается профиль, должна размещать ту же самую видеокарту и монитор, для которых должен использоваться профиль. После создания профиля ICC или серии профилей в системе Windows скопируйте файл(ы) из пути по умолчанию:
macOS обычно сохраняет сохраненные профили ICC в одном из двух местоположений:
Как только соответствующие .icc/.icm файлы будут скопированы, установите профили устройств в нужную вам систему. Каталоги профилей устройств в Linux:
Gnome Color Manager
В Gnome профиль ICC можно легко создать с помощью gnome-color-manager . В Gnome это доступно через Центр управления и довольно просто использовать. Для использования этой функции вам понадобится колориметрическое устройство.
Инструкция
Убедитесь, что запущен gnome-settings-daemon и запущен:
Найдите Device ID строку вашего монитора. Если это, например xrandr-Lenovo Group Limited , начните калибровать с помощью команды:
LPROF ICC Profiler
LPROF является профилировщиком ICC с графическим интерфейсом пользователя, указанным в lprof AUR в AUR.
Калибровка монитора
Контраст/Яркость
Отрегулируйте освещение в помещении так же, как вы будете использовать его при работе. Даже если ваш экран покрыт антибликовым покрытием, вы должны избегать попадания света прямо на него. Пусть ваш монитор прогревается в течение как минимум часа, чтобы изображение стабилизировалось. Если ваше калибровочное устройство имеет рассеиватель окружающей среды, отрегулируйте яркость вашей комнаты, чтобы достичь рекомендуемой целевой точки люкс.
- Установите контраст монитора на максимум или на 100%.
- Затем отобразите чистый черный на весь экран, создав небольшое черно-белое изображение PNG (все пиксели имеют RGB = 0, 0, 0) и открыв его в просмотрщике изображений, которое может отображать изображение в полноэкранном режиме без каких-либо элементов управления.
- Уменьшите вертикальный размер экрана монитора (не изображение PNG, отображаемое средством просмотрщиком, а все то, что отображается на экране) до 60% до 70% от полной высоты. То, что показано выше и ниже изображения, называется незасканированной областью, и поскольку эта область не получает никакого напряжения, она является самой черной из черных, которую способен отображать ваш монитор.
- Найдите регулятор яркости (обычно это солнце, круг с лучами, выступающими из его краев) и опустите значение до тех пор, пока черное изображение не будет соответствовать не сканируемой области.
Цветовая температура
Как мы сказали во введении, установка цветовой температуры должна произойти в полдень. Если у вас есть только фиксированная заводская цветовая температура по умолчанию, вам не нужно ждать солнечного дня. Просто установите его на 6500K.
Поместите монитор так, чтобы вы могли видеть за окном и экраном одновременно. Для этого шага вам также нужно создать белое квадратное изображение (RGB = 255, 255, 255), примерно 10 на 10 сантиметров (4 на 3 дюйма). Используя тот же метод Gwenview, что и яркость/контраст, отобразите белый квадрат на черном фоне.
- Во-первых, приготовь глаза, глядя на внешний мир некоторое время. Позвольте им приспособиться к условию просмотра дневного света в течение нескольких минут.
- Взгляните на монитор и белый квадрат на несколько секунд (это должно быть недолго, потому что глаза быстро отрегулируются).
- Если квадрат кажется желтоватым, вам нужна более высокая цветовая температура, или если у него синеватый оттенок, необходимо понизить температуру.
- Держите взгляд, глядя в окно и регулируя температуру белого, пока квадрат не станет чистым белым.
Не спешите с описанными выше шагами. Важно, чтобы все было правильно.
Профилирование монитора без дополнительного устройства калибровки
Запустить lprof. Вам будет представлено довольно большое окно с несколькими вкладками справа.
- Перейдите на вкладку Monitor Profiler. Затем нажмите на кнопку Enter monitor values >>.
- Точка белого должна быть установлена на 6500K (daylight).
- Основной цвет должен быть установлен либо SMPTE RP145-1994, или EBU Tech.3213-E или P22, либо любые подходящие значения для вашего монитора. Если вы встретите правильные значения для своего монитора, введите их, выбрав User Defined в раскрывающемся списке. Если вы сомневаетесь, вы можете использовать P22 для всех мониторов с ЭЛТ Trinitron (в этом случае Trinitron не связан с Sony Trinitron мониторами и телевизорами), и SMPTE RP145-1994 для остальных ЭЛТ.
- Нажмите кнопку Set Gamma and Black Point.
- Теперь вы увидите полноэкранное представление двух диаграмм с некоторыми элементами управления внизу.
- Снимите флажок Link channels и настройте индивидуальную красную, зеленую и синюю гамму, перемещая ползунок влево или вправо, или введя и изменив значения в трех прямоугольниках слева. Цель состоит в том, чтобы сделать диаграмму слева (меньшая квадратная) плоской. Когда вы удовлетворены тем, как это выглядит, установите флажок Link channels и снова настройте гамму.
- Когда все будет готово, нажмите OK. Еще раз OK.
Когда вы закончите ввод значений монитора, вы можете ввести некоторую информацию о мониторе. Это не обязательно, но всегда приятно знать, какой профиль для чего.
- Нажмите кнопку Profile identification.
- Заполните данные.
- Нажмите OK для завершения.
После того, как все будет готово, нажмите кнопку ‘. ‘ рядом с полем Output Profile File. Введите имя своего профиля: somemonitor.icc. Нажмите кнопку Create Profile и все готово.
ThinkPads
Загрузка ICC профилей
Профили ICC загружаются либо демоном сеанса, либо специальным загрузчиком ICC. У Gnome и KDE есть демоны, способные загружать профили ICC из colord . Если вы используете colord в сочетании с gnome-settings-daemon или colord-kde , профиль будет загружен автоматически. Если вы не используете ни Gnome, ни KDE, вы можете установить независимый демон, xiccd, который делает то же самое, но не зависит от среды вашего рабочего стола. Не запускайте одновременно два демона, совместимых с ICC (например, gnome-settiongs-daemon и xiccd).
Если вы не используете какой-либо ICC-capable демон, убедитесь, что вы используете только один загрузчик ICC — либо xcalib, dispwin, dispcalGUI-apply-profiles, либо другие, иначе вы легко получите неконтролируемую среду. (Последний загрузчик установил калибровку, а ранее загруженная калибровка была перезаписана.)
Прежде чем использовать какой-либо конкретный загрузчик ICC, вы должны понимать, что некоторые инструменты устанавливают только калибровочные кривые (например, xcalib), другие инструменты, устанавливающие только профиль отображения на X.org _ICC_PROFILE atom (например, xicc) и другие инструменты, выполняют обе задачи сразу (например, dispwin, dispcalGUI-apply-profiles).
xcalib
- xcalib — это легкий загрузчик монитора, который может загружать профиль монитора ICC для совместного использования в десктоп приложениях. xcalib является частью репозитория пользователей Arch (AUR).
Пример Xinitrc
Загружаемый профиль P221W-sRGB.icc в /usr/share/color/icc на монитор host:0 при запуске X сервера
«>Пример JWM
Загружаемый профиль P221W-Native.icc в /usr/local/share/color/icc на монитор host:0 при запуске JWM
dispwin
Пример Xinitrc
Загружаемый профиль 906w-6500K.icc в /home/arch/.color/icc на монитор 0 при запуске X сервера
_2″>Пример JWM
Загрузить калибровочный файл Argyll 906w-7000K.cal в /usr/local/share/color/icc на монитор 1 при запуске JWM
Вы можете легко использовать один из этих загрузчиков для применения цветового профиля на ранней стадии загрузки при запуске экранного менеджера, например, используя загрузочный скрипт LightDM. Это позволяет загрузить один файл профиля icc. Это не будет работать с загрузкой нескольких файлов профиля при использовании настройки multi monitopr.
Источник