О цветовых пространствах

Цветовое пространство описывает абстрактную, многомерную среду, в которой может быть определен любой определенный цвет. Следующие разделы суммируют фундаментальные понятия и терминологию цветовых пространств, и обсуждает, как Какао реализует их.

Часть информации, представленной здесь, адаптируется из Обзора управления цветом. Для полного описания цветовых и цветовых пространств см. тот документ.

Цветовые модели и цветовые пространства

Человеческий глаз предчувствует цвет как свет в довольно узкой полосе спектра электромагнитных волн. Биология глаза делает его особенно восприимчивым к красному, синему, и зеленому свету. Люди могут визуализировать широкий диапазон цветов через смеси этих трех основных цветов.

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

Цветовое пространство является практической адаптацией цветовой модели, указывающей палитру цветов, которые могут быть произведены с помощью той модели. Цветовая модель определяет отношение между значениями, и цветовое пространство определяет абсолютное значение тех значений как цвета. Эти значения, названные компонентами, находятся в большинстве экземпляров значения с плавающей точкой между 0,0 и 1.0.

Серый, RGB и цветовые пространства CYMK

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

RGB является трехмерной цветовой моделью, имя которой (как с большинством цветовых пространств и цветовых моделей) представляет свои компоненты — в этом случае красный, зеленый, и синий. Основанные на RGB цветовые пространства являются дополнением, означая, что эти три основных цвета, красные, зеленые, и синие, добавляются вместе в различных пропорциях интенсивности для создания цветов видимого участка спектра. Цветовые пространства RGB используются для устройств, таких как цветные дисплеи и сканеры.

С другой стороны, цветовые пространства на основе цветовой модели CYM являются отнимающими. Буквы в имени модели обозначают компоненты, голубые, желтые, и пурпурные. Главным цветовым пространством на основе CYM является CYMK; «K» на его имя обозначает ключевой цвет, который является черным. Теория субтрактивного цвета, лежащая в основе CYM, содержит это, различные уровни голубого цвета, пурпурного цвета, и желтый поглощают или «вычитают» часть спектра белого света, освещающего объект. Цвет объекта является результатом световых сигналов, не поглощенных объектом. Черный цвет в цветовом пространстве CYMK используется для компенсации взаимодействие этих трех основных цветов на отчете. Цветовое пространство CYMK обычно используется для цветных принтеров и подобных устройств вывода.

Поскольку рисунок 1 иллюстрирует, RGB и цветовые модели CYM дополнительны, с одним являющимся дополнением и другое отнимающее (красный угол в этом представлении модели скрыт от представления).

Рисунок 1  RGB и цветовые модели CYM
The RGB and CYM color models

Две важных и связанных трансформации модели цветов RGB являются цветовыми пространствами HLS и HSV. Вместо того, чтобы делать красным, зеленым, и синим действующие компоненты пространства, эти пробелы описывают, раскрашивает условия, более естественные для художника:

  • HSV — оттенок, насыщенность, значение (также известный как HSB, где «B» представляет яркость),

  • HLS — оттенок, легкость, насыщенность

HSV/B и HLS располагают с интервалами модели использования, присваивающие значения этим компонентам в конических конфигурациях, как проиллюстрировано на рисунке 2.

Рисунок 2  HSV и цветовые модели HLS
The HSV and HLB color models

Компонент оттенка в обоих пробелах является измерением в степенях, раскрашивают спектр, сформированный в круг. Значения постепенно увеличиваются в направлении против часовой стрелки: значение оттенка нуля указывает красный, значение оттенка 120 указывает зеленый и т.д. И в HSB и в пробелах HLS, компонент насыщенности измеряет интенсивность цвета (имеющий существенное значение, например, между коричневым и коричневым цветом). Легкость и значение (или яркость) компоненты различных пробелов почти идентичны. Они измеряют отсутствие света — или черный — который является частью определенного цвета.

Цветная панель, используемая в приложениях Mac, имеет область цветового диска, моделирующую модель HSB (рисунок 3).

Рисунок 3  область цветового диска цветной панели
The color-wheel pane of the color panel

Независящие от устройств цветовые пространства

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

Можно также отметить тонкие цветовые различия среди цветовых пространств в той же цветовой модели «семья». Например, модель цветов RGB имеет много цветовых пространств RGB, таких как ColorMatch, Adobe RGB, sRGB, и ProPhoto RGB. Можно присвоить те же значения компонентов RGB профилям, описывающим эти различные цветовые пространства RGB. Цвет от каждого цветового пространства выглядит по-другому, когда представлено, но числовые значения и модель являются тем же.

Некоторые цветовые пространства могут выразить, раскрашивают путь, который независим от любого устройства. Цвета их независящее от устройств цветовое пространство являются более точными представлениями цветов, воспринятых человеческим глазом. Они происходят из ответа сетчатки к трем основным стимулам видимого света. Много независящих от устройств результатов цветовых пространств работы, выполненной Commission Internationale d’Eclairage (CIE) и по этой причине, также вызывают основанными на CIE цветовыми пространствами. Три из более важных основанных на CIE пробелов являются XYZ, Yxy и L*a*b*. Рисунок 4 изображает L*a*b* цветовое пространство.

Рисунок 4  L*a*b* цветовое пространство
The L*a*b* color space

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

Цветовые пространства в какао

Набор Приложения представляет цветовые пространства двумя способами: через имена цветового пространства и объекты цветового пространства.

Имена цветового пространства

Имена цветового пространства являются глобальными строковыми константами, объявленными в NSGraphics.h это определяет предопределенные цветовые пространства. Можно использовать имя цветового пространства в определенных методах NSColor, создающих или преобразовывающих цветовые объекты. Имя идентифицирует цветовое пространство, которое будет использоваться для работы. Таблица 1 перечисляет в настоящее время определяемые константы.

Табличное 1  Цветовое пространство называет в Наборе Приложения

Имя цветового пространства

Описание

NSDeviceCYMKColorSpace

Зависящее от устройств цветовое пространство с голубым цветом, пурпурным, желтым, черным цветом цветом, и альфа-компоненты

NSDeviceWhiteColorSpace

Зависящее от устройств цветовое пространство с белым и альфа-компонентами (чистый белый 1.0),

NSDeviceBlackColorSpace

Зависящее от устройств цветовое пространство с черным цветом и альфа-компонентами (чистый черный 1.0),

NSDeviceRGBColorSpace

Зависящее от устройств цветовое пространство с красным, зеленым, синим цветом, и альфа-компоненты. Однако Вы можете также создать цвет с HSB (оттенок, насыщенность, яркость) и альфа-компоненты и можете извлечь эти компоненты.

NSCalibratedWhiteColorSpace

Калиброванное цветовое пространство с белым и альфа-компонентами (чистый белый 1.0),

NSCalibratedBlackColorSpace

Калиброванное цветовое пространство с черным цветом и альфа-компонентами (чистый черный 1.0),

NSCalibratedRGBColorSpace

Калиброванное цветовое пространство с красным, зеленым, синим цветом, и альфа-компоненты. Однако Вы можете также создать цвет с HSB (оттенок, насыщенность, яркость) и альфа-компоненты и можете извлечь эти компоненты.

NSNamedColorSpace

Имя каталога и цвет называют компоненты

NSPatternColorSpace

Изображение образца (размещается рядом)

NSCustomColorSpace

Пользовательские NSColorSpace возражают и компоненты с плавающей точкой, описывающие цвет в том пространстве

Альфа-компонент принадлежит всем цветовым пространствам, используемым в Какао. Это определяет непрозрачность цвета; альфа-значение 1,0 указывает, что абсолютно непрозрачный цвет и 0.0 указывает абсолютно прозрачный.

Имена цветового пространства «Устройства» представляют цветовые пространства, в которых значения компонентов применяются к устройствам, как указано. Нет никакой оптимизации или корректировки к различиям между устройствами в том, как они представляют цвета. Если Вы знаете точно, какое устройство подключено к системе, и Вы хотите распечатать или вывести на экран определенный цвет на том устройстве, то это целесообразно использовать надлежащее зависящее от устройств цветовое пространство при создании объектов NSColor. Однако это обычно - не случай, который знает приложение, какие устройства подключаются и их определенные цветовые пространства. Если Вы указываете компоненты цвета в зависящем от устройств цветовом пространстве — скажем, NSDeviceRGBColorSpace— и затем имейте несколько рендеринга дисплеев этот цвет, Вы будете видеть несколько немного отличающихся цветов.

Для обхождения этой проблемы, можно использовать калиброванные цветовые пространства, определяющиеся двумя из имен цветового пространства в Таблице 1. Калиброванное цветовое пространство является независящим от устройств цветовым пространством. Цветовые пространства, определяемые NSCalibratedWhiteColorSpace и NSCalibratedRGBColorSpace цветовые пространства калибруются к устройству, лучше всего представляющему устройства в определенном классе, такие как цветные дисплеи. Когда Вы не уверены о цветовом пространстве устройства в определенном контексте, это позволяет Вашему приложению представлять довольно точные цвета.

Имя цветового пространства NSNamedColorSpace идентифицирует специальный тип цветовых пространств. Компоненты этого цветового пространства являются индексами в списки или каталоги подготовленных цветов. Каталоги именованных цветов идут с таблицами поиска, которые в состоянии генерировать корректный цвет на данном устройстве.

NSPatternColorSpace имя цветового пространства идентифицирует цветовое пространство образца, которое является просто изображением, повторяющимся много раз в мозаичном образце.

NSCustomColorSpace имя цветового пространства идентифицирует пользовательский объект NSColorSpace. Пользовательский объект цветового пространства представляет цветовое пространство, не обязательно предопределенное Набором Приложения. Посмотрите Пробелы Пользовательского цвета Создания для получения информации о создании пользовательских объектов цветового пространства.

Объекты цветового пространства

В Какао объекты могут представлять цветовые пространства так же, как имена цветового пространства могут определять их. Фактически, каждое имя цветового пространства идентифицирует базовый объект цветового пространства, создаваемый Набором Приложения. Объекты цветового пространства являются экземплярами класса, наследовавшегося от класса NSColorSpace.

Большинство имен цветового пространства называет цветовое пространство представленным базовым объектом NSColorSpace. Эти те же объекты возвращаются методами фабрики классов NSColorSpace. Таблица 2 показывает корреляцию между именем цветового пространства и объектом цветового пространства фабрики.

Таблица 2  Соответствующие имена цветового пространства и методы фабрики NSColorSpace

Имя цветового пространства

Методы фабрики цветового пространства

NSCalibratedWhiteColorSpace NSCalibratedBlackColorSpace

genericGrayColorSpace

NSCalibratedRGBColorSpace

genericRGBColorSpace

Ни один

genericCMYKColorSpace

NSDeviceWhiteColorSpace NSDeviceBlackColorSpace

deviceGrayColorSpace

NSDeviceRGBColorSpace

deviceRGBColorSpace

NSDeviceCMYKColorSpace

deviceCMYKColorSpace

NSNamedColorSpace

Ни один

NSPatternColorSpace

Ни один

NSCustomColorSpace

Ни один

Класс NSColor является крупнейшим «клиентом» класса NSColorSpace. Много методов NSColor включают параметр или для указания имени цветового пространства или для объекта цветового пространства. Фактически, цветовые объекты не могут быть созданы без явной или неявной ссылки на цветовое пространство, включая цветовые пространства образца и именованный. (Цветные методы создания NSColor, не указывающих цветовое пространство или цветовую модель на их имена, принимают калиброванный RGB или калибровали белые цветовые пространства.) Другие методы класса NSColor позволяют Вам преобразовывать цветовой объект в одном цветовом пространстве к объекту, представляющему цвет в различном цветовом пространстве. Для получения дополнительной информации посмотрите Создание и Преобразование Цветов Используя Цветовые пространства.

Можно сделать пользовательские объекты цветового пространства программно при помощи класса NSColorSpace. Для создания пользовательского цветового пространства возражают, что необходимо инициализировать его с одним из двух источников данных:

  • Объект ColorSync — объект непрозрачного типа CMProfileRef.

  • ICC профилирует данные — объект NSData инкапсуляция карты профиля ICC; карта является структурой, состоящей из заголовка, таблицы тега и теговых данных элемента.

Для получения дополнительной информации о создании объектов, представляющих пробелы пользовательского цвета, посмотрите Пробелы Пользовательского цвета Создания.