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

Пример

В следующем примере при запуске программы создается начальная палитра с 16 оттенками серого (от белого до черного). Когда пользователь выбирает пункт меню Test!, палитра расширяется на 16 элементов, которые заполняются оттенками синего. Затем отображается образец каждого цвета в палитре, как показано на рис. 16.3.

См.    \local-sources\chapl6\16-05.txtРисунок 16.3. Пример применения функции CreatePalette

DeleteColorSpace                        Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL DeleteColorSpace( HCOLORSPACE hColorSpace )

Параметры

hColorSpace

HCOLORSPACE. Дескриптор удаляемого цветового пространства, возвращенный в результате предыдущего вызова функции CreateColorSpace.

Возвращаемое значение

BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

wingdi.h

См. также

CreateColorSpace, GetLogColorSpace

Пример

См. пример для функции CreateColorSpace.

EnumlCMProfiles                        Windows 98   • Windows 2000

Описание

Функция EnumlCMProfiles перечисляет различные цветовые профили, которые система поддерживает для контекста устройства, передавая имя файла каждого цветового профиля функции обратного вызова, определяемой приложением.

Синтаксис

int EnumICMProfiIes( HDC hdc, ICMENUMPROC IpICMEnumFunc, LPARAM IParam)

Параметры

hdc

HDC. Контекст устройства.

IpICMEnumFunc

ICMENUMPROC. Адрес функции обратного вызова, определяемой приложением. Описание функции обратного вызова приведено ниже.

IParam

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

Возвращаемое значение

int. Последнее значение, возвращенное функцией обратного вызова, которое равно 0, если функция обратного вызова прерывала перечисление. В ином случае возвращаемое значение равно -1, если нет ни одного цветового профиля, подлежащего перечислению, или согласование цветов изображения не разрешено.

Включаемый файл

wingdi.h

См. также

GetlCMProfile, SetlCMProfile

Синтаксис обратного вызова

int CALLBACK EnumICMProfilesProc( LPTSTR IpszFilename, LPARAM Iparam)

Параметры обратного вызова

IpszFilename

LPTSTR. Указатель на строку с нулевым символом в конце, которая указывает имя файла цветового профиля.

IParam

LPARAM. Поступающие из приложения данные, переданные функцией EnumlCMProfiles.

Возвращаемое з\

начение обратного вызова

int. Положительное значение для продолжения перечисления или 0 для прекращения перечисления. Функция не должна возвращать отрицательное значение.

Пример

В следующем примере при запуске программы на всю ширину клиентской области создается список. Когда пользователь выбирает пункт меню Test!, функция EnumlCMProfiles вносит в этот список все установленные профили ICM.

См.    \local-sources\chapl6\16-06. txt

GetBValue                                •  Windows 98   • Windows 2000

Описание

Функция GetBValue реализована как макрокоманда, которая позволяет получить значение интенсивности компонента синего цвета кода RGB.

Синтаксис

BYTE GetBValue( COLORREF rgb )

Параметры

rgb

COLORREF. Код RGB цвета.

Возвращаемое значение

BYTE. Интенсивность компонента синего цвета указанного кода RGB.

Включаемый файл

wingdi.h

См. также

GetRValue, GetGValue

Пример

См. пример для функции GetNearestColor.

GetGValue                     •  Windows 98   • Windows 2000

Описание

Функция GetGValue реализована как макрокоманда, которая позволяет получить значение интенсивности компонента зеленого цвета кода RGB.

Синтаксис

BYTE GetGValue( COLORREF rgb )

Параметры

rgb

COLORREF. Код RGB цвета.

Возвращаемое значение

BYTE. Интенсивность компонента зеленого цвета указанного кода RGB.

Включаемый файл

wingdi.h

См. также

GetRValue, GetBValue

Пример

См. пример для функции GetNearestColor.

GetRValue                               Windows 98   * Windows 2000

Описание

Функция GetRValue реализована как макрокоманда, которая позволяет получить значение интенсивности компонента красного цвета кода RGB.

Синтаксис

BYTE GetRValue( COLORREF rgb )

Параметры

rgb

COLORREF. Код RGB цвета.

Возвращаемое значение BYTE. Интенсивность компонента красного цвета указанного кода RGB.

Включаемый файл

wingdi.h

См. также

GetGValue, GetBValue

Пример

См. пример для функции GetNearestColor.

GetColorAdjustment                    Windows 98   • Windows 2000

Описание

Функция GetColorAdjustment позволяет определить коэффициенты цветокоррекции для указанного контекста устройства. Коэффициенты цветокоррекции используются для корректировки первоначального цвета исходного растрового изображения при вызове функций   StretchBlt и StretchDIBits, если установлен режим HALFTONE

Синтаксис

BOOL GetCoIorAdjustment( HDC hDC, LPCOLORADJUSTMENT Ipca )

Параметры HDC

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

Ipca

LPCOLORADJUSTMENT. Указатель на структуру COLORADJUSTMENT,в которой должны храниться значения коэффициентов цветокоррекции. Определение структуры COLORADJUSTMENT приведено в описании функции SetColorAdjustment далее в этой главе.

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

wingdi.h

См. также

SetColorAdjustment, SetStretchBItMode

Пример

Пример применения этой функции приведен в описании функции SetColorAdjustment.

GetColorSpace                          Windows 98   • Windows 2000

Описание

Функция GetColorSpace позволяет получить текущий дескриптор логического цветового пространства из контекста устройства.

Синтаксис

HLOGCOLORSPACE GetCoIorSpace( HDC hdc )

Параметры

hdc

HDC. Контекст устройства.

Возвращаемое значение

HLOGCOLORSPACE. В случае успешного выполнения функция возвращает текущий дескриптор логического цветового пространства; в ином случае возвращаемое значение — NULL.

Включаемый файл

wingdi.h

См. также

GetLogColorSpace, CreateColorSpace, SetColorSpace

Пример

В следующем примере функция GetColorSpace используется для проверки того, установлено ли цветовое пространство для контекста устройства клиентской области окна, когда пользователь выбирает пункт меню Test!. Если цветовое пространство установлено, с помощью функции GetLogColorSpace выбираются данные цветового пространства.

См.    \local-sources\chapl6\16-07. txt

GetDeviceGammaRamp                  Windows 98   • Windows 2000

Описание

Функция GetDeviceGammaRamp позволяет определить гамма-характеристику видеоплаты с непосредственным отображением цветов. В режимах непосредственного отображения цветов, обычно с 16-, 24- или 32-разрядным представлением цвета, кодовые таблицы цветов не используются. Не все видеоплаты с непосредственным отображением цветов поддерживают загружаемые гамма-характеристики, поэтому функция выполняется успешно только на тех компьютерах, аппаратное обеспечение которых поддерживает загружаемые гамма-характеристики.

Синтаксис

BOOL GetDe\iceGammaRamp( HDC hdc, LPVOID IpRamp )

Параметры

hdc

HDC. Контекст устройства.

lp Ramp

LPVOID. Указатель на набор из трех массивов цветов (красного, зеленого и синего), состоящих из 256 элементов типа WORD. Эти массивы устанавливают взаимосвязь между кодами цветов в буфере изображения и коэффициентами цифро-аналогового преобразования.

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

wingdi.h

См. также

SetDeviceGammaRamp

Пример

См. пример для функции SetDeviceGammaRamp.

GetlCMProfile                           Windows 98   * Windows 2000

Описание

Функция GetlCMProfile позволяет определить имя файла цветового профиля для устройства, связанного с контекстом устройства. Функция не может быть выполнена, если для контекста устройства не было разрешено согласование цветов изображения.

Синтаксис

BOOL GetICMProfile( HDC hdc, LPDWORD IpcbName, LPTSTR IpszRlename )

Параметры

hdc

HDC. Контекст устройства.

IpcbName

LPDWORD. Указатель на переменную типа DWORD, которая содержит размер буфера, указанного параметром IpszFilename. Если функция была

выполнена успешно, то после возвращения из функции этот параметр содержит размер фактически используемого буфера. Если буфер оказался недостаточным, функция возвращает FALSE, а функция GetLastError возвращает ошибку ERROR_INSUFFICIENT_BUFFER В конечном итоге возвращаемое значение содержит размер, необходимый для буфера Ipszfilename.

Ipszfilename

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

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE. Для получения дополнительных сведений об ошибках применяется функция GetLastError.

Включаемый файл

wingdi.h

См. также

SetlCMProfile, SetlCMMode

Пример

См. пример для функции SetlCMProfile.

GetLoqColorSpace                       Windows 98   • Windows 2000

Описание

Функция GetLogColorSpace позволяет получить информацию о логическом цветовом пространстве, обозначенном заданным дескриптором. Эта функция копирует в буфер такой объем информации, сколько он может вместить. Для уточнения размера используемого буфера в приложении необходимо проверить член IcsSize структуры LOGCOLORSPACE.

Синтаксис

BOOL GetLogColorSpace( HLOGCOLORSPACE hColorSpace, LPLOGCOLORSPACE Ipbuffer, DWORD dwSize )

Параметры

h Color Space

HLOGCOLORSPACE. Дескриптор логического цветового пространства.

IpBuffer

LPLOGCOLORSPACE. Указатель на структуру LOGCOLORSPACE, которая принимает данные логического цветового пространства. Определение структуры LOGCOLORSPACE приведено в описании функции Create-ColorSpace.

dwSize

DWORD. Максимальный размер (в байтах) буфера, указанного параметром IpBuffer

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае — FALSE.

Включаемый файл

wingdi.h

См. также Пример

CreateColorSpace, DeleteColorSpace, GetColorSpaceСм. пример для функции GetColorSpace.

GetNearestColor                          Windows 98   • Windows 2000

Описание

Функция GetNearestColor возвращает код цвета системной палитры, который будет отображен вместо цвета с указанным кодом.

Синтаксис

COLORREF GetNearestColor( HDC hdc, COLORREF crColor)

Параметры

hdc

HDC. Контекст устройства.

crColor

COLORREF. Код указанного цвета.

Возвращаемое значение

COLORREF. В случае успешного выполнения — цвет из системной палитры, который соответствует данному коду цвета; в ином случае — CLR_INVALID.

Включаемый файл

wingdi.h

См. также

GetNearestPalettelndex, GetDeviceCaps

Пример

В следующем примере (рис. 16.4) функция GetNearestColor применяется для согласования затребованных цветов с цветами системной палитры.

См.    \local-aources\chapl6\16-08. txt