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

La méthode ImageAttributes::SetOutputChannel définit le canal de sortie CMJN pour une catégorie spécifiée.

Syntaxe

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

Paramètres

[in] channelFlags

Type : ColorChannelFlags

Élément de l’énumération ColorChannelFlags qui spécifie le canal de sortie.

[in, optional] type

Type : ColorAdjustType

Élément de l’énumération ColorAdjustType qui spécifie la catégorie pour laquelle le canal de sortie est défini. La valeur par défaut est ColorAdjustTypeDefault.

Valeur retournée

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Notes

Vous pouvez utiliser la méthode ImageAttributes::SetOutputChannel pour convertir une image en espace de couleur cyan-magenta-jaune-noir (CMJN) et examiner l’intensité de l’un des canaux de couleurs CMJN. Par exemple, supposons que vous créez un objet ImageAttributes et que vous définissez son canal de sortie bitmap sur ColorChannelFlagsC. Si vous passez l’adresse de cet objet ImageAttributes à la méthode DrawImage , le composant cyan de chaque pixel est calculé et chaque pixel de l’image rendue est une nuance de gris qui indique l’intensité de son canal cyan. De même, vous pouvez afficher des images qui indiquent l’intensité des canaux magenta, jaune et noir.

Un objet ImageAttributes conserve les paramètres de couleur et de nuances de gris pour cinq catégories d’ajustement : par défaut, bitmap, pinceau, stylet et texte. Par exemple, vous pouvez spécifier un canal de sortie pour la catégorie par défaut et un autre canal de sortie pour la catégorie bitmap.

Les paramètres de réglage des couleurs et des nuances de gris par défaut s’appliquent à toutes les catégories qui n’ont pas leurs propres paramètres d’ajustement. Par exemple, si vous ne spécifiez jamais de paramètres d’ajustement pour la catégorie bitmap, les paramètres par défaut s’appliquent à la catégorie bitmap.

Dès que vous spécifiez un paramètre de réglage des couleurs ou des nuances de gris pour une certaine catégorie, les paramètres d’ajustement par défaut ne s’appliquent plus à cette catégorie. Par exemple, supposons que vous spécifiez une collection de paramètres d’ajustement pour la catégorie par défaut. Si vous définissez le canal de sortie pour la catégorie bitmap en passant ColorAdjustTypeBitmap à la méthode ImageAttributes::SetOutputChannel , aucun des paramètres d’ajustement par défaut ne s’applique aux bitmaps.

Exemples

L’exemple suivant crée un objet Image et appelle la méthode DrawImage pour dessiner l’image. Ensuite, le code crée un objet ImageAttributes et définit son canal de sortie bitmap sur cyan (ColorChannelFlagsC). Le code appelle DrawImage une deuxième fois, en passant l’adresse de l’objet Image et l’adresse de l’objet ImageAttributes . Le canal cyan de chaque pixel est calculé et l’image rendue montre les intensités du canal cyan sous forme de nuances de gris. Le code appelle DrawImage trois fois de plus pour afficher l’intensité des canaux magenta, jaune et noir.


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

L’illustration suivante montre la sortie du code précédent.

Illustration montrant cinq versions d’une image : d’abord en couleur, puis en quatre modèles différents de nuances de gris

Configuration requise

   
Client minimal pris en charge Windows XP, Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusimageattributes.h (incluez Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

ColorAdjustType

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile