Функция CreateColorTransformW (icm.h)
Создает преобразование цвета, которое приложения могут использовать для управления цветом.
Синтаксис
HTRANSFORM CreateColorTransformW(
LPLOGCOLORSPACEW pLogColorSpace,
HPROFILE hDestProfile,
HPROFILE hTargetProfile,
DWORD dwFlags
);
Параметры
pLogColorSpace
Указатель на входные данные LOGCOLORSPACEA.
hDestProfile
Дескриптор профиля целевого устройства. Функция определяет, содержит ли HPROFILE сведения о профиле Международного консорциума цветов (ICC) или Windows Color System (WCS).
hTargetProfile
Дескриптор профиля целевого устройства. Функция определяет, содержит ли HPROFILE сведения о профиле ICC или WCS.
dwFlags
Задает флаги для используемого элемента управления созданием преобразования. См. заметки.
Возвращаемое значение
Если эта функция выполняется успешно, возвращаемое значение является дескриптором преобразования цвета.
Если эта функция завершается сбоем, возвращается значение NULL. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Комментарии
Если целевой профиль имеет значение NULL, преобразование переходит из исходного логического цветового пространства в профиль назначения. Если указан целевой профиль, преобразование переходит из исходного логического цветового пространства в целевой профиль, а затем в профиль назначения. Это позволяет просматривать выходные данные, предназначенные для целевого устройства на целевом устройстве.
Значения в dwFlags предназначены только как подсказки. Модуль управления цветом должен определить оптимальный способ их использования.
Windows Vista: добавлены три новых флага, которые можно использовать с dwFlags:
Flag | Описание |
---|---|
PRESERVEBLACK | Если этот бит задан, подсистема преобразования вставляет соответствующее черное поколение GMMP в качестве последнего GMMP в последовательности преобразования. Этот флаг работает только в чистом преобразовании WCS. |
SEQUENTIAL_TRANSFORM | Если этот бит задан, каждый шаг в конвейере обработки WCS выполняется для каждого пикселя на изображении, и оптимизированное преобразование цвета не создается. Этот флаг работает только в чистом преобразовании WCS. Ограничения. Преобразование, созданное с помощью флага SEQUENTIAL_TRANSFORM, может использоваться только в потоке, в котором оно было создано, и только для одного вызова преобразования цвета за раз. Com должен быть инициализирован перед созданием последовательного преобразования и должен оставаться инициализированным в течение всего времени существования объекта преобразования. |
WCS_ALWAYS | Если этот бит задан, даже все преобразования ICC будут использовать путь к коду WCS. |
Примечание
SEQUENTIAL_TRANSFORM непреднамеренно опущен в заголовке icm.h в пакете SDK для Windows Vista. Если вы хотите использовать флаг SEQUENTIAL_TRANSFORM , определите его в приложении следующим образом: #define SEQUENTIAL_TRANSFORM 0x80800000
Дополнительные сведения см. в разделе Флаги создания преобразования CMM. Все упомянутые здесь флаги поддерживаются для всех типов преобразований, за исключением FAST_TRANSLATE, которая работает только в чистом преобразовании icc-to-ICC.
Функция CreateColorTransform используется вне контекста устройства. Цвета могут меняться при преобразовании из цветового профиля в тот же. Это связано с ошибками точности. Поэтому при таких обстоятельствах не следует выполнять преобразование цвета.
Теги B2Ax необходимы для любого профиля, который является целевым объектом преобразования.
Поддержка преобразования WCS для профилей ICC ColorSpace ограничена профилями цветового пространства RGB. Следующие типы профилей ICC не могут использоваться в преобразовании, обрабатываемом CITE, либо в смешанном преобразовании WCS/ICC, либо в преобразовании all-ICC с WCS_ALWAYS набором:
- Профили ColorSpace, отличные от RGB
- Профили NamedColor
- профили n-каналов (где n > 8)
- Профили DeviceLink
- Абстрактные профили
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | icm.h |
Библиотека | Mscms.lib |
DLL | Mscms.dll |