Поделиться через


sRGB: стандартное цветовое пространство

В связи с соображениями пропускной способности Интернета Hewlett-Packard и Майкрософт предложили внедрить стандартное предопределенное цветовое пространство , известное как sRGB (IEC 61966-2-1), чтобы обеспечить точное цветовое сопоставление с очень небольшими затратами на данные.

Версия технического документа, в котором обсуждаются технические сведения о sRGB, sRGB.hlp, доступна в папке \Help справочника программистов WCS 1.0.

В разных форматах файлов можно использовать или добавить флаг, чтобы указать, что изображение находится в цветовом пространстве sRGB. Установка элемента bV5CSType структуры BITMAPV5HEADER в аппаратно-независимом формате Windows LCS_sRGB указывает, что цвета DIB находятся в цветовом пространстве sRGB.

WCS 1.0 обеспечивает встроенную поддержку sRGB. Существует два способа использования WCS 1.0 для отрисовки изображения, определенного в цветовом пространстве sRGB:

Отрисовка изображения в контексте устройства

  1. Создайте контекст устройства (DC) на устройстве отображения.
  2. Задайте управление цветом с помощью функции SetICMMode .
  3. Используйте функцию SetDIBitsToDevice для передачи DIB в контроллер домена. Если член bV5CSMType структуры DIB BITMAPV5HEADER имеет значение LCS_sRGB, система будет выполнять соответствующее управление цветом.

Отрисовка изображения за пределами контекста устройства

  1. Создайте преобразование с помощью CreateColorTransformW. Элемент lcsCSType структуры LOGCOLORSPACE , на который указывает параметр pLogColorSpace , должен иметь значение LCS_sRGB. Параметр hDestProfile указывает цветовое пространство устройства отображения.
  2. Используйте созданное преобразование цвета, чтобы цвет соответствовал изображению перед его отображением на устройстве.

Значения по умолчанию WCS 1.0 для входного цветового пространства и профиля вывода

Если входное цветовое пространство не указано, по умолчанию WCS 1.0 использует цветовое пространство sRGB в качестве входного цветового пространства для сопоставления цветов.

Если выходной профиль не указан, но указано устройство по умолчанию, WCS 1.0 выбирает профиль вывода по умолчанию. Если устройство по умолчанию не имеет связанного профиля, WCS 1.0 использует цветовое пространство sRGB в качестве профиля вывода.

В следующей таблице показаны результирующее преобразование цвета, если устройство по умолчанию недоступно.

  Указан профиль вывода Профиль вывода не указан
Указанное цветовое пространство ввода Преобразование использует указанные профили. Преобразование преобразует из известного входного цветового пространства в sRGB.
Цветовое пространство ввода не указано Преобразование преобразует из sRGB в известный выходной профиль. Предполагается преобразование из sRGB в sRGB; ничего не сделано.

 

sRGB и внедренные профили

Начиная с ICM версии 2.0, приложения, использующие WCS, могут внедрять профили в изображения. Внедренные профили помогают приложениям пользователей поддерживать согласованный цвет, даже если изображения передаются через Интернет.

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

Приложения должны установить флаг LCS_sRGB в заголовке растрового изображения, чтобы указать, что изображение использует цветовое пространство sRGB. Дополнительные сведения см. в разделах Структуры заголовков точечного рисунка Windows и LOGCOLORSPACE.