Compartilhar via


Função CreateColorTransformA (icm.h)

Cria uma transformação de cores que os aplicativos podem usar para executar o gerenciamento de cores.

Sintaxe

HTRANSFORM CreateColorTransformA(
  LPLOGCOLORSPACEA pLogColorSpace,
  HPROFILE         hDestProfile,
  HPROFILE         hTargetProfile,
  DWORD            dwFlags
);

Parâmetros

pLogColorSpace

Ponteiro para a entrada LOGCOLORSPACEA.

hDestProfile

Manipule para o perfil do dispositivo de destino. A função determina se o HPROFILE contém informações de perfil do ICC (International Color Consortium) ou do WCS (Windows Color System).

hTargetProfile

Manipule para o perfil do dispositivo de destino. A função determina se o HPROFILE contém informações de perfil ICC ou WCS.

dwFlags

Especifica sinalizadores para a criação do controle usado da transformação. Consulte Observações.

Valor retornado

Se essa função for bem-sucedida, o valor retornado será um identificador para a transformação de cores.

Se essa função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se o perfil de destino for NULL, a transformação vai do espaço de cor lógica de origem para o perfil de destino. Se o perfil de destino for dado, a transformação vai do espaço de cor lógica de origem para o perfil de destino e, em seguida, para o perfil de destino. Isso permite visualizar a saída destinada ao dispositivo de destino no dispositivo de destino.

Os valores em dwFlags são destinados apenas como dicas. O módulo de gerenciamento de cores deve determinar a melhor maneira de usá-los.

Windows Vista: três novos sinalizadores foram adicionados que podem ser usados com dwFlags:

Sinalizador Descrição
PRESERVEBLACK Se esse bit for definido, o mecanismo de transformação inserirá o GMMP de geração preta apropriado como o último GMMP na sequência de transformação. Esse sinalizador funciona apenas em uma transformação WCS pura.
SEQUENTIAL_TRANSFORM Se esse bit for definido, cada etapa no pipeline de processamento do WCS será executada para cada pixel na imagem e nenhuma transformação de cor otimizada será criada. Esse sinalizador funciona apenas em uma transformação WCS pura. Restrições: uma transformação criada com o conjunto de sinalizadores SEQUENTIAL_TRANSFORM só pode ser usada no thread no qual ele foi criado e apenas para uma chamada de tradução de cores por vez. O COM deve ser inicializado antes de criar a transformação sequencial e deve permanecer inicializado durante o tempo de vida do objeto de transformação.
WCS_ALWAYS Se esse bit for definido, até mesmo as transformações do ICC usarão o caminho do código WCS.

Observação

SEQUENTIAL_TRANSFORM foi inadvertidamente omitido do cabeçalho icm.h no SDK do Windows Vista. Se você quiser usar o sinalizador SEQUENTIAL_TRANSFORM , defina-o em seu aplicativo da seguinte maneira:#define SEQUENTIAL_TRANSFORM 0x80800000

Para obter detalhes, consulte Sinalizadores de criação de transformação do CMM. Todos os sinalizadores mencionados têm suporte para todos os tipos de transformações, exceto para FAST_TRANSLATE, que funciona apenas em uma transformação pura de ICC para ICC.

A função CreateColorTransform é usada fora de um contexto de dispositivo. As cores podem mudar ao transformar de um perfil de cor para o mesmo perfil de cor. Isso ocorre devido a erros de precisão. Portanto, uma transformação de cor não deve ser executada nessas circunstâncias.

As marcas B2Ax são necessárias para qualquer perfil que seja o destino de uma transformação.

O suporte à transformação do WCS para perfis do ICC ColorSpace é limitado a perfis de colorspace RGB. Os seguintes tipos de perfil ICC não podem ser usados em uma transformação processada pelo CITE, seja uma transformação mista do WCS/ICC ou uma transformação all-ICC com WCS_ALWAYS definido:

  • Perfis colorspace não RGB
  • Perfis NamedColor
  • Perfis de n canais (em que n > 8)
  • Perfis deviceLink
  • Perfis abstratos

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho icm.h
Biblioteca Mscms.lib
DLL Mscms.dll

Confira também