Método ImageAttributes::SetOutputChannel (gdiplusimageattributes.h)
O método ImageAttributes::SetOutputChannel define o canal de saída CMYK para uma categoria especificada.
Sintaxe
Status SetOutputChannel(
[in] ColorChannelFlags channelFlags,
[in, optional] ColorAdjustType type
);
Parâmetros
[in] channelFlags
Tipo: ColorChannelFlags
Elemento da enumeração ColorChannelFlags que especifica o canal de saída.
[in, optional] type
Tipo: ColorAdjustType
Elemento da enumeração ColorAdjustType que especifica a categoria para a qual o canal de saída está definido. O valor padrão é ColorAdjustTypeDefault.
Valor retornado
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 o método ImageAttributes::SetOutputChannel para converter uma imagem em um espaço de cor ciano-magenta-amarelo-preto (CMYK) e examinar as intensidades de um dos canais de cores CMYK. Por exemplo, suponha que você crie um objeto ImageAttributes e defina seu canal de saída de bitmap como ColorChannelFlagsC. Se você passar o endereço desse objeto ImageAttributes para o método DrawImage , o componente ciano de cada pixel será calculado e cada pixel na imagem renderizada será um tom de cinza que indica a intensidade de seu canal ciano. Da mesma forma, você pode renderizar imagens que indicam as intensidades dos canais magenta, amarelo e preto.
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 canal de saída para a categoria padrão e um 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 canal de saída para a categoria bitmap passando ColorAdjustTypeBitmap para o método ImageAttributes::SetOutputChannel , 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 define seu canal de saída de bitmap como ciano (ColorChannelFlagsC). 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_SetOutputChannel(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"Mosaic2.bmp");
// Draw the image unaltered.
graphics.DrawImage(&image, 10, 10, width, height);
UINT width = image.GetWidth();
UINT height = image.GetHeight();
ImageAttributes imAtt;
// 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);
}
A ilustração a seguir mostra a saída do código anterior.
Requisitos
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