Compartir a través de


Método ImageAttributes::SetOutputChannel (gdiplusimageattributes.h)

El método ImageAttributes::SetOutputChannel establece el canal de salida CMYK para una categoría especificada.

Sintaxis

Status SetOutputChannel(
  [in]           ColorChannelFlags channelFlags,
  [in, optional] ColorAdjustType   type
);

Parámetros

[in] channelFlags

Tipo: ColorChannelFlags

Elemento de la enumeración ColorChannelFlags que especifica el canal de salida.

[in, optional] type

Tipo: ColorAdjustType

Elemento de la enumeración ColorAdjustType que especifica la categoría para la que se establece el canal de salida. El valor predeterminado es ColorAdjustTypeDefault.

Valor devuelto

Tipo: Estado

Si el método se realiza correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

Puede usar el método ImageAttributes::SetOutputChannel para convertir una imagen en un espacio de colores cian-magenta-amarillo-negro (CMYK) y examinar las intensidades de uno de los canales de color CMYK. Por ejemplo, supongamos que crea un objeto ImageAttributes y establece su canal de salida de mapa de bits en ColorChannelFlagsC. Si pasa la dirección de ese objeto ImageAttributes al método DrawImage , se calcula el componente cian de cada píxel y cada píxel de la imagen representada es un tono de gris que indica la intensidad de su canal cian. De forma similar, puede representar imágenes que indiquen la densidad de los canales magenta, amarillo y negro.

Un objeto ImageAttributes mantiene la configuración de color y escala de grises para cinco categorías de ajuste: predeterminado, mapa de bits, pincel, lápiz y texto. Por ejemplo, puede especificar un canal de salida para la categoría predeterminada y otro canal de salida para la categoría de mapa de bits.

La configuración predeterminada de ajuste de escala de grises y color se aplica a todas las categorías que no tienen ajustes de ajuste propios. Por ejemplo, si nunca especifica ninguna configuración de ajuste para la categoría de mapa de bits, la configuración predeterminada se aplica a la categoría de mapa de bits.

En cuanto especifique una configuración de ajuste de escala de colores o grises para una determinada categoría, la configuración de ajuste predeterminada ya no se aplica a esa categoría. Por ejemplo, supongamos que especifica una colección de opciones de ajuste para la categoría predeterminada. Si establece el canal de salida para la categoría de mapa de bits pasando ColorAdjustTypeBitmap al método ImageAttributes::SetOutputChannel , ninguna de las opciones de ajuste predeterminadas se aplicará a los mapas de bits.

Ejemplos

En el ejemplo siguiente se crea un objeto Image y se llama al método DrawImage para dibujar la imagen. A continuación, el código crea un objeto ImageAttributes y establece su canal de salida de mapa de bits en cian (ColorChannelFlagsC). El código llama a DrawImage una segunda vez, pasando la dirección del objeto Image y la dirección del objeto ImageAttributes . El canal cian de cada píxel se calcula y la imagen representada muestra las intensidades del canal cian como sombras de gris. El código llama a DrawImage tres veces más para mostrar las intensidades de los canales magenta, amarillo y negro.


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); 
}
				

En la ilustración siguiente se muestra la salida del código anterior.

Ilustración que muestra cinco versiones de una imagen: primero en color y, a continuación, en cuatro patrones diferentes de escala de grises

Requisitos

   
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusimageattributes.h (incluya Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

ColorAdjustType

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile