LINUX.ORG.RU

python-lcms2 v0.1

 ,


2

3

sK1 Project выпустил первую стабильную версию привязки библиотеки для управления цветом LittleCMS2 к Python.

Пакет python-lcms2 позволяет написанным на Python приложениям конвертировать цвета из одного цветового пространства в другое с помощью функций LittleCMS2, используя ICC-профили. На текущий момент поддерживаются цветовые пространства RGB, CMYK, Gray, Lab и XYZ и глубина цвета 8-bit, 16-bit и дробные двойной точности (double).

Причина появления такого минипроекта — отсутствие официальной привязки. На текущий момент Марти Мария, автор LCMS2, рекомендует использовать системную libcolord через интерфейс GObjectIntrospection, что ограничивает портируемость ПО пределами Linux-десктопа.

В sK1/UniConvertor привязка к LCMS2 была написана еще в 2012 году. Но по просьбе разработчика SwatchBooker был выполнен рефакторинг с целью выделения кода в отдельный проект, который может использоваться другими приложениями так же, как ранее использовался пакет python-lcms (официальная привязка к LCMS1).

>>> Подробности

Ответ на: комментарий от Linfan

Зачем настройка DPI для монитора? Какой сакральный смысл в этом?

Ну, хотелось бы чтобы на мониторе все отображалось в реальных размерах при 100% увеличении.
http://prophotos.ru/data/articles/0001/6771/103640/thumb_630.jpg

Ну, и классический пример: померять линейкой приставленной к монитору
http://eurica.net/images/other/dkrulerss-demo.jpg

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: комментарий от atsym

Это не DPI для монитора, а настройка превьюв 1:1. Обычно под понятием «DPI для монитора» подразумевают внутреннее соотношение между точками и дюймами. В sK1 это 72 dpi (как в постскрипте/пдф), у Inkscape это значение несколько раз меняли (спроси у AP детали).

Linfan ★★★★★ ()
Ответ на: комментарий от Linfan

Так а как этот «Desktop» в переводе будет? «Рабочий стол» («Цвет рабочего стола»)?

atsym ★★★★★ ()
Ответ на: комментарий от Linfan

В sK1 это 72 dpi (как в постскрипте/пдф)

Так а в чём проблема сделать его настраиваемым? (+ кнопка «По умолчанию», которая бы сбрасывала на 72dpi)

Вот к примеру, в OOMapper (который как бы «Cartographic DTP», тоже для PDF и печати полиграфии) есть данная опция. У меня монитор 96dpi.

atsym ★★★★★ ()
Ответ на: комментарий от atsym

Да не связано это с монитором. Ну ваще никак. Это пересчет единиц измерения внутри аппликухи. Если он плавающий, будут косяки как у Инки со старыми файлами.

Для превьюв 1:1 нужно специальные настройки. Тем более, что у мониторов разные dpi по вертикали и горизонтали.А на качество картинки канвы этот показатель совсем не роялит.

Linfan ★★★★★ ()
Последнее исправление: Linfan (всего исправлений: 1)
Ответ на: комментарий от Linfan

Для превьюв 1:1 нужно специальные настройки.

Я как раз это подразумевал. Именно эту функциональность хотелось бы увидеть в sK1 2.0

Тем более, что у мониторов разные dpi по вертикали и горизонтали

Разве пиксели не должны быть квадратными на матрице монитора?..

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: Write *.ACO support от atsym

Write *.ACO support

Можно написать и Write *.CDR support, но не факт, что будет выхлоп :)

Linfan ★★★★★ ()
Ответ на: комментарий от Linfan

Ну, насчёт ACO - там есть ссылки на готовые примеры.

Write *.CDR

А при чём здесь CDR? CDR - это же файл проекта, а не файл палитры (в отличии от ACO)

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 2)
Ответ на: комментарий от atsym

Палитру можно и в векторный формат выгнать - прямоугольниками с соотв. заливкой.

Linfan ★★★★★ ()
Ответ на: комментарий от Linfan

AzPainter (в принципе) может сам сгенерировать палитру на основе таблицы в виде растрового изображения (PNG, Jpeg, и т.д.)

Но это не совсем то же самое, что и загрузка уже готовых файлов палитр в форматах GPL, ACO и ASE

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 2)
Ответ на: комментарий от atsym

Ладно, уболтал - сделаю за пару-тройку дней (если ничего не помешает) для ACO импорт/экспорт в sK1 ;)

Linfan ★★★★★ ()
Ответ на: комментарий от atsym

Пантон распространяет свои палитры в формате EPS, например. Scribus их оттуда даже читает.

AP ★★★★★ ()
Ответ на: комментарий от AP

Это не относится к теме форматов палитр.

Насколько я знаю, эталонные пронумерованные цвета PANTONE MATCHING SYSTEM® напечатаны в специальном каталоге и вроде не распространяются в электронном формате. Где-то даже упоминалось что только полиграфическое исполнение изданное (отпечатанное) компанией-правовладельцем (Pantone Inc., позже купленная компанией X-Rite Inc.) является единственно верным. И только с официальным напечатанным каталогом можно сравнивать цвета.

https://en.wikipedia.org/wiki/Pantone

Так-что приведенный пример с EPS вообще здесь неуместен.

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 3)
Ответ на: комментарий от atsym

Насколько я знаю, эталонные пронумерованные цвета PANTONE MATCHING SYSTEM® напечатаны в специальном каталоге и вроде не распространяются в электронном формате.

https://www.pantone.com/pantone-color-manager-software

Где-то даже упоминалось что только полиграфическое исполнение изданное (отпечатанное) компанией-правовладельцем (Pantone Inc., позже купленная компанией X-Rite Inc.) является единственно верным.

Ну да, а сервис Xref и упомянутый выше софт они запустили так — чисто прикольнуться.

AP ★★★★★ ()
Ответ на: комментарий от AP

Я не буду спорить, но в стандартах печати для спортивной картографии «ISOM 2000» указанно как раз об некоторых особенностях PMS:

http://orienteering.org/wp-content/uploads/2010/12/International-Specificatio...

В принципе уже обсуждается возможность перехода на CMYK (как более дешевый и не столь проприетарный) в новом стандарте «ISOM 2017», который должен утвержден в этом году.

http://www.attackpoint.org/discussionthread.jsp/message_1181618

В OOMapper есть некоторая поддержка PMS

http://www.openorienteering.org/mapper-manual/pages/mapping-introduction.html

atsym ★★★★★ ()
Ответ на: комментарий от atsym

Тут не о чем особо спорить.

https://www.pantone.com/software-licensees

«Pantone licenses our proprietary color systems, like the PANTONE MATCHING SYSTEM®, and the PANTONE FASHION, HOME + INTERIORS Color System to companies for use with their digital solutions.»

Поэтому палитры Пантона есть по умолчанию у Адоба, Корела и прочих Кварков. В электронном виде.

Делается это ровно для того, чтоб не надо было ручками вбивать название краски из каталога. Подобрал цвет по вееру, щёлкнул в софте нужный квадратик — и сгенерил правильный PDF. Профит! :)

AP ★★★★★ ()
Ответ на: комментарий от AP

Вот поэтому я сразу и сказал, что твой пример неуместен

atsym ★★★★★ ()

конвертировать цвета из одного цветового пространства в другое

То есть, я могу снимать в инфракрасном диапазоне и всю картинку конвертировать в видимый?

Stalin ★★★★★ ()
Ответ на: комментарий от atsym

Мне непонятна твоя логика, ну да ладно.

AP ★★★★★ ()
Ответ на: комментарий от Stalin

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

Linfan ★★★★★ ()
Ответ на: комментарий от Linfan

ACO-палитры в программах sK1 2.0 и AzPainter 2.0.2 (Linux)

Взял для примера вот «metro-ui-colors.aco» отсюда:
>>> https://github.com/englishextra/metro-ui-colors

Вот скриншот
>>> http://pasteall.org/pic/index.php?id=112900

Пояснение (слева направо)

  • в sK1 2.0 (импорт оригинальной «metro-ui-colors.aco»)
    @ цвет «crimson» = R-161 G-0 B-36
  • в AzPainter (импорт пересохраненной через sK1 палитры «metro-ui-colors_sk1.aco»)
    @ цвет «crimson» = R-162 G-0 B-37
  • в AzPainter (импорт оригинальной «metro-ui-colors.aco»)
    @ цвет «crimson» = R-162 G-0 B-37

В «metro-ui-colors.gpl» (GPL палитра) цвет «crimson» = R-162 G-0 B-37

https://github.com/englishextra/metro-ui-colors/blob/master/metro-ui-colors.gpl

Выводы: в sK1 после импорта ACO значения всех цветов в RGB записи выглядят некорректно (не нулевые значения уменьшены на 1 пункт), при этом после экспорта в ACO файлах записи вроде выглядят нормально (после импорта в AzPainter).

При этом, к импорту/экспорту в AzPainter претензий НЕТ!

atsym ★★★★★ ()

В sK1 все цвета передаются ввиде double float. Для красоты на экране демонстрируется 8bit значение (как в GPL палитре).

«Якась скотына» записала в ACO палитру дробное значение 161.9 (в ней значения хранятся в 16bit) В результате на экран выводится 161, а не 162. Нафига было записывать дробное, если оригинальные цвета заданы в 8bit - хз. Но для таких «хитросконвертированных» граждан добавил округление и теперь все норм.

Linfan ★★★★★ ()
Ответ на: комментарий от Linfan

Так и подозревал что проблема с округлением, но вычитывать данный ACO в HEX-редакторе было лень ))

Кстати, я так понимаю, что скоро в твоей «Palette collection» появятся и ACO вариант свободных палитр?(я надеюсь на это)

atsym ★★★★★ ()
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: комментарий от atsym

скоро в твоей «Palette collection» появятся и ACO вариант свободных палитр?

Не, пока обновлять не планирую. Для фотожопа и ASE годятся. Когда-нибудь «папизже» (с) :)

Linfan ★★★★★ ()
Ответ на: комментарий от Linfan

Ладно, буду конвертить через sK1 в ACO. Обнови «ночную» сборку

P.S.: «ты с этим вот, вот этим, этим всем доиграешься»(c) ;)

atsym ★★★★★ ()
Ответ на: комментарий от atsym

Ладно, буду конвертить через sK1 в ACO. Обнови «ночную» сборку

На конвертацию проблема округления не роялит. Некорректная цыфирь только в диалоговых текстах. На канве и в потрохах гораздо более точные значения, чем 8bit или 16bit.

Но из чуйства перфекционизьму сборку таки обновлю :)

Linfan ★★★★★ ()
Последнее исправление: Linfan (всего исправлений: 1)
Ответ на: комментарий от Linfan

palette-collection_1.0_ACO.zip

Сконвертил из GPL в ACO ;)

http://hnng.moe/f/NxF

Попутно исправил название (посмотри у себя также): "Lible_Colors.gpl" --> "Libre_Colors.aco"

atsym ★★★★★ ()
Ответ на: комментарий от Linfan

«Якась скотына» записала в ACO палитру дробное значение 161.9 (в ней значения хранятся в 16bit) В результате на экран выводится 161, а не 162.

А чё, там floor() что ли? ЛОЛ.

AP ★★★★★ ()
Ответ на: комментарий от AP

Неа, вместо \хA2\x00 стоит \xA1\xFA. Там просто первые два байта брались для 8bit.

Linfan ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.