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 |