странство RGB (red, green, blue — красный, зеленый, синий) устройства, пространство CMYK (cyan, magenta, yellow, black — голубой, сиреневый, желтый, черный) устройства и калиброванное пространство RGB.
Пространство RGB устройства и пространство CMYK устройства представляют собой цветовые пространства устройства, позволяющие использовать в приложениях цвета любых устройств вывода. Цветовое пространство RGB устройства представляет собой цветовое пространство, применяемое по умолчанию, для всех контекстов устройства. Цветовое пространство CMYK устройства обычно используется для принтеров, которые поддерживают коды цветов CMYK. Калиброванное цветовое пространство RGB определено стандартом XYZ 1931 Международной комиссии по освещению (CIE — Commission Internationale de 1'Eclairage). Конечные точки RGB определены так называемыми триплетами — тремя 32-разрядными значениями CIE XYZ.
В приложении можно изменить применяемое по умолчанию цветовое пространство для контекста устройства с помощью функций CreateColorSpace и SetColorSpace. Установка цветового пространства связана с определением формата информации о цвете, передаваемой из приложения в устройство, а также определением способа интерпретации устройством информации о цвете в терминах стандарта CIE XYZ.
Цветовой профиль
Цветовой профиль подробно определяет цветовые возможности отдельных устройств. Например, цветовой профиль видеомонитора определяет спектры излучения люминофоров этого устройства. Интерфейс GDI имеет лишь ограниченные возможности управления профилями в интересах приложения. По этой причине в приложениях можно просто перебрать все профили для какого-то устройства с помощью функции EnumlCMProfiles. Функция SetlCMProfile позволяет использовать в приложении конкретный профиль. Функция GetlCMProfile возвращает имя файла текущего профиля, используемого интерфейсом GDI при согласовании цветов изображения для контекста устройства.
Функции управления палитрой и согласования цветов
В табл. 16.1 приведены функции управления палитрой и согласования цветов. За таблицей следует подробное описание функций.
Функция |
Назначение |
|
CreatePalette |
Создает логическую палитру |
|
DeleteColorSpace |
Удаляет логическое цветовое пространство |
|
EnumlCMProfiles |
Перечисляет цветовые профили, поддерживаемые для контекста устройства |
|
GetBValue |
Выбирает компонент синего цвета кода RGB |
|
GetGValue |
Выбирает компонент зеленого цвета кода RGB |
|
GetRValue |
Выбирает компонент красного цвета кода RGB |
|
GetColor Adjustment |
Позволяет определить коэффициенты цветокоррекции для контекста устройства |
|
GetColorSpace |
Позволяет определить дескриптор текущего логического цветового пространства для контекста устройства |
|
GetDeviceGammaRamp |
Позволяет определить гамма-характеристику видеоплаты с непосредственным отображением цветов |
|
GeflCMProfile |
Позволяет определить имя цветового профиля для контекста устройства |
|
GetLogColorSpace |
Позволяет получить информацию о логическом цветовом пространстве |
|
GetNearestColor |
Позволяет получить код цвета системной палитры, который будет использоваться вместо указанного цвета |
|
GetNearestPalettelndex |
Находит номер элемент палитры, который в наибольшей степени соответствует данному коду RGB |
|
GetPaletteEntries |
Определяет коды цветов для ряда элементов логической палитры |
|
GetSystemPaletteEntries |
Определяет цвет каждого элемента системной палитры |
|
GetSystemPaletteUse |
Позволяет определить, можно ли изменить в приложении системну палитру |
|
RealizePalette |
Отображает логическую палитру, выбранную для контекста устройства, на аппаратную палитру |
|
ResizePalette |
Изменяет размер логической палитры |
|
SelectPalette |
Выбирает цветовую палитру в контекст устройства |
|
SetColor Adjustment |
Устанавливает коэффициенты цветокоррекции для контекста устройства |
|
SetColorSpace |
Устанавливает цветовое пространство для контекста устройства |
|
SetOeviceGammaRamp |
Устанавливает гамма-характеристику видеоплаты с непосредственным отображением цветов |
|
SettCMMode |
Разрешает или запрещает согласование цветов изображения для контекста устройства |
|
SeflCMProfile |
Устанавливает цветовой профиль для контекста устройства |
|
SetPaletteEntries |
Изменяет коды цветов в логической палитре |
|
SetSystemPaletteUse |
Позволяет вносить изменения в системную цветовую палитру |
|
UpdateCotors |
Перерисовывает клиентскую область, если приложение не имеет фокуса ввода, но реализовало логическую палитру |
|
AnimatePalette • Windows 98 • Windows 2000 |
||
Описание |
Функция AnimatePalette заменяет входы в логической палитре. Эта функция позволяет быстро сменить цвета объектов, отображаемых с применением цветов логической палитры. |
|
Синтаксис |
BOOL AnimatePalette( HPALETTE hPal, UINT uStartlndex, UINT uEntries, CONST PALETTEENTRY* pPE ) |
|
Параметры |
||
hPal |
HPALETTE. Дескриптор логической палитры. |
|
uStartlndex |
UINT. Вход логический палитры, который должен быть заменен. |
|
u Entries |
UINT. Число входов, которые должны быть заменены. |
|
pPE |
CONST PALETTEENTRY*. Указатель на первый член массива структур PALETTEENTRY, используемых для замены входов палитры. Этот массив должен содержать не меньше входов, чем указано параметром uEntries. Определение структуры PALETTEENTRY приведено в описании функции CreatePalette далее в этой главе. |
|
Возвращаемое значение |
||
BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. |
||
Включаемый файл |
wingdi.h |
|
См. также |
CreatePalette |
|
Пример |
В следующем примере создается быстро движущаяся красная полоса. Полоса начинает свое движение с левой стороны клиентской области. Когда пользователь выбирает пункт меню Test!, создается впечатление, что полоса перемещается слева направо в клиентской области. Программа, приведенная в этом примере, работает только в системах, которые настроены на поддержку 256 цветов. Движение вызвано быстрой сменой последовательности цветов, состоящей из 128 прямоугольников, размещенных заранее в клиентской области. Вначале красным цветом окрашен только крайний слева прямоугольник. Остальные окрашены белым цветом, поэтому они не видны. Цвет каждого следующего прямоугольника меняется на красный с использованием функции AnimatePalette. Это намного быстрее по сравнению с окрашиванием каждого прямоугольника с помощью функции Rectangle. В стиль главного окна должен входить стиль CS_OWNDC. |
|
См. \local-sources\chapl6\16-01 . fart |
||
CheckColorslnGamut • Windows 98 + Windows 2000 |
||
Описание |
Функция CheckColorslnGamut определяет, принадлежит ли набор кодов цветов к гамме контекста устройства. |
|
Синтаксис |
BOOL CheckCoIorsInGamut( HDC Mr, LPVOID IpRGBTriples, LPVOID IpResult, UINT nCount ) |
|
Параметры |
||
hdc |
HDC. Контекст устройства. |
|
IpRGBTriples |
LPVOID. Указатель на массив триплетов RGB, который содержит коды цветов, предназначенные для проверки. Определение структуры RGBTRIPLE приведено ниже. |
|
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.