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.

Ilustração mostrando cinco versões de uma imagem: primeiro em cores, depois em quatro padrões diferentes de escala de cinza

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

Coloradjusttype

ColorChannelFlags

Imageattributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile