lcms

Библиотека для управления цветом, реализующая модуль Color Management System (CMS). Она предоставляет инструменты для преобразования цветов между различными цветовыми пространствами, работы с ICC-профилями и обеспечения точного воспроизведения цвета на разных устройствах. Библиотека широко используется в графических приложениях, операционных системах и встраиваемых системах для обеспечения консистентности цветопередачи.

Особенности

  • полная поддержка стандарта ICC (International Color Consortium) для работы с цветовыми профилями;
  • преобразование цветов между различными цветовыми пространствами (RGB, CMYK, Lab, XYZ и др.);
  • поддержка как 8-битных, так и 16-битных и с плавающей точкой цветовых данных;
  • малый размер и минимальные зависимости, подходит для встраиваемых систем.

Основные компоненты

LCMS состоит из нескольких модулей, которые обеспечивают все функции системы управления цветом, от чтения ICC-профилей до выполнения сложных преобразований (подробнее с документацией можно ознакомиться здесь).

Работа с ICC-профилями

Библиотека предоставляет полный набор функций для чтения, записи, создания и управления ICC-профилями. Это включает поддержку различных версий стандарта ICC и работу с профилями устройств, пространств соединения и абстрактными профилями.

Основные функции работы с профилями:

  • cmsOpenProfileFromFile(), cmsOpenProfileFromMem() — открытие профилей из файла или памяти;
  • cmsCloseProfile() — закрытие профиля и освобождение ресурсов;
  • cmsCreateRGBProfile(), cmsCreateLab4Profile() — создание стандартных профилей;
  • cmsSaveProfileToFile(), cmsSaveProfileToMem() — сохранение профилей;
  • cmsGetProfileInfo() — получение информации о профиле (описание, производитель и др.);
  • cmsGetPCS() и cmsGetColorSpace() — получение цветового пространства профиля.

Преобразование цветов

LCMS предоставляет мощный механизм для создания трансформ — объектов, которые выполняют преобразование цветов из одного цветового пространства в другое с учетом заданных ICC-профилей и параметров рендеринга.

Функции создания и использования трансформ:

  • cmsCreateTransform() — создание трансформации на основе входного и выходного профилей;
  • cmsCreateMultiprofileTransform() — создание трансформации с несколькими профилями;
  • cmsDoTransform() — применение трансформации к массиву цветовых данных;
  • cmsDeleteTransform() — удаление трансформации и освобождение ресурсов;
  • cmsChangeBuffersFormat() — изменение формата данных в буфере без изменения цвета.

Поддержка различных форматов данных

Библиотека поддерживает множество форматов цветовых данных, включая различные разрядности, порядки каналов и упаковки. Это позволяет интегрировать LCMS в различные графические конвейеры без необходимости преобразования данных.

Поддерживаемые форматы:

  • Целочисленные форматы: 8-бит, 16-бит на канал;
  • Форматы с плавающей точкой: 32-бит float, 16-бит half-float (опционально);
  • Порядок каналов: RGB, BGR, ARGB, CMYK, Lab, XYZ;
  • Планерные и чанкированные (interleaved) данные.

Работа с тегами профилей

Библиотека позволяет читать и записывать теги ICC-профилей, что полезно для работы с метаданными и кастомными расширениями профилей.

Функции работы с тегами:

  • cmsReadTag() — чтение данных тега профиля;
  • cmsWriteTag() — запись данных в тег профиля;
  • cmsTagLinkedTo() — определение связи между тегами;
  • Поддержка как стандартных, так и частных (private) тегов.

Цветовые преобразования без ICC-профилей

LCMS также предоставляет функции для базовых цветовых преобразований без необходимости использования ICC-профилей. Это полезно для простых операций или когда полный профиль не требуется.

Базовые цветовые функции:

  • cmsXYZ2Lab(), cmsLab2XYZ() — преобразование между XYZ и Lab;
  • cmsXYZ2xyY(), cmsxyY2XYZ() — преобразование между XYZ и xyY;
  • cmsDeltaE() — вычисление цветовой разницы (ΔE) между двумя цветами;
  • cmsWhitePointFromTemp() — получение белой точки по цветовой температуре.

Интеграция с графическими системами

LCMS может интегрироваться с различными графическими системами и библиотеками, такими как GIMP, ImageMagick, и поддерживает плагины для популярных приложений.

Точки интеграции:

  • Поддержка плагинов для Photoshop через формат 8BF;
  • Интеграция с GIMP через плагин GIMP-LCMS;
  • Использование в ImageMagick и GraphicsMagick для цветовых преобразований.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "lcms/2.16@aurora",
    )    

Процесс локальной сборки описан в документации.

lcms

A free, open source, CMM engine.
Лицензия
MIT
Версия
Домашняя страница
Скачать
armv7
245.82 Kb
MD5: 91f6b1e50127b235ffb7e3ffa9a80efa
Updated: 03.09.2025, 18:22:53
armv8
269.69 Kb
MD5: ecef2e01e25cb936213772db65c11d07
Updated: 03.09.2025, 18:22:44
x86_64
273.8 Kb
MD5: 7fa5c6dc571ad21e3443f87ab69a5eb4
Updated: 03.09.2025, 18:22:55
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.