Compartilhar via


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:

  1. Crie um objeto Image .
  2. Crie um objeto ImageAttributes .
  3. Passe ColorChannelFlagsC para o método ImageAttributes::SetOutputChannel do objeto ImageAttributes .
  4. Passe o nome do caminho de um arquivo de perfil de cor para o método ImageAttributes::SetOutputChannelColorProfile do objeto ImageAttributes .
  5. Passe os endereços dos objetos Image e ImageAttributes para o método DrawImage .
O Windows GDI+ usará o arquivo de perfil de cor para calcular o componente ciano de cada pixel na imagem, e cada pixel na imagem renderizada será um tom de cinza que indica a intensidade de seu canal ciano.

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.

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

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

Coloradjusttype

ColorChannelFlags

Imageattributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannel