Método ImageAttributes::SetOutputChannelColorProfile (gdiplusimageattributes.h)
O método ImageAttributes::SetOutputChannelColorProfile define o arquivo de perfil de cor do canal de saída para uma categoria especificada.
Sintaxe
Status SetOutputChannelColorProfile(
[in] const WCHAR *colorProfileFilename,
[in, optional] ColorAdjustType type
);
Parâmetros
[in] colorProfileFilename
Tipo: const WCHAR*
Nome do caminho de um arquivo de perfil de cor. Se o arquivo de perfil de cor estiver no diretório %SystemRoot%\System32\Spool\Drivers\Color, esse parâmetro poderá ser o nome do arquivo. Caso contrário, esse parâmetro deve ser o nome de caminho totalmente qualificado.
[in, optional] type
Tipo: ColorAdjustType
Elemento da enumeração ColorAdjustType que especifica a categoria para a qual o arquivo de perfil de cor do canal de saída está definido. O valor padrão é ColorAdjustTypeDefault.
Retornar valor
Tipo: Status
Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .
Se o método falhar, ele retornará um dos outros elementos da enumeração Status .
Comentários
Você pode usar os métodos ImageAttributes::SetOutputChannel e ImageAttributes::SetOutputChannelColorProfile para converter uma imagem em um espaço de cores ciano-magenta-amarelo-preto (CMYK) e examinar as intensidades de um dos canais de cores CMYK. Por exemplo, suponha que você escreva um código que execute as seguintes etapas:
- Crie um objeto Image .
- Crie um objeto ImageAttributes .
- Passe ColorChannelFlagsC para o método ImageAttributes::SetOutputChannel do objeto ImageAttributes .
- Passe o nome do caminho de um arquivo de perfil de cor para o método ImageAttributes::SetOutputChannelColorProfile do objeto ImageAttributes .
- Passe os endereços dos objetos Image e ImageAttributes para o método DrawImage .
Um objeto ImageAttributes mantém as configurações de cor e escala de cinza para cinco categorias de ajuste: padrão, bitmap, pincel, caneta e texto. Por exemplo, você pode especificar um arquivo de perfil de cor do canal de saída para a categoria padrão e um arquivo de perfil de cor de canal de saída diferente para a categoria bitmap.
As configurações padrão de ajuste de cor e escala de cinza se aplicam a todas as categorias que não têm configurações de ajuste próprias. Por exemplo, se você nunca especificar nenhuma configuração de ajuste para a categoria de bitmap, as configurações padrão se aplicarão à categoria bitmap.
Assim que você especificar uma configuração de ajuste de escala de cinza ou cor para uma determinada categoria, as configurações de ajuste padrão não se aplicam mais a essa categoria. Por exemplo, suponha que você especifique uma coleção de configurações de ajuste para a categoria padrão. Se você definir o arquivo de perfil de cor do canal de saída para a categoria bitmap passando ColorAdjustTypeBitmap para o método ImageAttributes::SetOutputChannelColorProfile , nenhuma das configurações de ajuste padrão será aplicada a bitmaps.
Exemplos
O exemplo a seguir cria um objeto Image e chama o método DrawImage para desenhar a imagem. Em seguida, o código cria um objeto ImageAttributes e chama seu método ImageAttributes::SetOutputChannelColorProfile para especificar um arquivo de perfil para a categoria bitmap. A chamada para ImageAttributes::SetOutputChannel define o canal de saída (para a categoria bitmap) como ciano. O código chama DrawImage uma segunda vez, passando o endereço do objeto Image e o endereço do objeto ImageAttributes . O canal ciano de cada pixel é calculado e a imagem renderizada mostra as intensidades do canal ciano como tons de cinza. O código chama DrawImage mais três vezes para mostrar as intensidades dos canais magenta, amarelo e preto.
VOID Example_SetOutputProfile(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"Mosaic2.bmp");
ImageAttributes imAtt;
UINT width = image.GetWidth();
UINT height = image.GetHeight();
// Draw the image unaltered.
graphics.DrawImage(&image, 10, 10, width, height);
imAtt.SetOutputChannelColorProfile(
L"TEKPH600.ICM", ColorAdjustTypeBitmap);
// Draw the image, showing the intensity of the cyan channel.
imAtt.SetOutputChannel(ColorChannelFlagsC, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(110, 10, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
// Draw the image, showing the intensity of the magenta channel.
imAtt.SetOutputChannel(ColorChannelFlagsM, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(210, 10, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
// Draw the image, showing the intensity of the yellow channel.
imAtt.SetOutputChannel(ColorChannelFlagsY, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(10, 110, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
// Draw the image, showing the intensity of the black channel.
imAtt.SetOutputChannel(ColorChannelFlagsK, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(110, 110, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
}
O código anterior, juntamente com os arquivos Mosaic2.bmp e Tekph600.icm, produziu a saída a seguir.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | gdiplusimageattributes.h (inclua Gdiplus.h) |
Biblioteca | Gdiplus.lib |
DLL | Gdiplus.dll |
Confira também
ImageAttributes::ClearOutputChannel