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


Функция CreateColorTransformA (icm.h)

Создает преобразование цвета, которое приложения могут использовать для управления цветом.

Синтаксис

HTRANSFORM CreateColorTransformA(
  LPLOGCOLORSPACEA 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

См. также раздел