Палитры и согласование цветов, страница 3

Согласование цветов изображения

Системы Windows 2000 и Windows 9x предоставляют возможности согласования цветов изображения, позволяющие единообразно воспроизводить цветные изображения в приложениях на всех устройствах вывода. В настоящей главе рассматриваются функции согласования цветов, которые работают непосредственно с контекстом устройства. Существует также несколько API Win32, относящиеся к средствам управления согласованием цветов, которыми большинство программистов не пользуется, поэтому они здесь не рассматриваются.

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

Согласование цветов изображения распространяется на все операции вывода, в которых цвета представлены в виде кодов цвета, например, как в функции FloodFilL Согласование цветов изображения применяется также к цветам объектов GDI, таких как перья, кисти и шрифты. Оно не распространяется на аппаратно-зависимые растровые изображения, созданные с помощью функций CreateBitmap и CreateCompatibleBitmap.

В согласовании цветов изображения используются логические цвета, представляющие собой аппаратно-независимые значения, которые указывают физический цвет, Логические коды цветов постоянны на всех устройствах. В приложениях и устройствах, в том числе таких устройствах ввода, как сканеры, для представления информации о цвете используются логические коды цветов. Устройства вывода отвечают зг точное преобразование указанного логического цвета в соответствующий ему физический цвет. Набор цветов, поддерживаемый, устройством, называется гаммой. Каждое устройство имеет собственную гамму. Например, монитор способен отображал оттенки голубого цвета, которые не может воспроизвести ни один принтер, а принтер может выводить такие оттенки красного, которые никогда не появляются на дисплее. Для преодоления этих различий в системе Windows применяется процесс, называемый согласованием гаммы. При этом осуществляется поиск согласованных цвето! в гаммах разных устройств. Согласование не сводится к достоверному воспроизведению каждого пикселя с заданным цветом. Согласование цветов изображения — этс изучение способности устройства вывода воспроизвести изображение с таким же соотношением цветов, как и при воспроизведении на других устройствах. С помощью функции CheckColorsInGamut в приложении можно определить, принадлежит ли цвет к гамме устройства. Для предварительного просмотра цветов того, что посылается на печать, на экране в приложении можно использовать функцию ColorMatchToTarget

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

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

Таблица 16. 1. Функции управления палитрой и согласования цветов

Функция

Назначение

AnimatePalette

Быстро изменяет цвета объектов, взятые из логической палитры

CheckColorsInGamut

Определяет, какие цвета входят в гамму контекста устройства

CotorCorrectPalette

Исправляет входы палитры с использованием параметров ICM в контексте устройства

ColorMatchToTarget

Разрешает или запрещает режим предварительного просмотра цветов для контекста устройства

CreateColorSpace

Создает логическое цветовое пространство

CreateHalftonePalette

Создает полутоновую палитру