Partager via


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

La méthode ImageAttributes ::SetOutputChannelColorProfile définit le fichier de profil de couleur du canal de sortie pour une catégorie spécifiée.

Syntaxe

Status SetOutputChannelColorProfile(
  [in]           const WCHAR     *colorProfileFilename,
  [in, optional] ColorAdjustType type
);

Paramètres

[in] colorProfileFilename

Type : const WCHAR*

Nom du chemin d’accès d’un fichier de profil de couleur. Si le fichier de profil de couleur se trouve dans le répertoire %SystemRoot%\System32\Spool\Drivers\Color, ce paramètre peut être le nom de fichier. Sinon, ce paramètre doit être un nom de chemin qualifié complet.

[in, optional] type

Type : ColorAdjustType

Élément de l’énumération ColorAdjustType qui spécifie la catégorie pour laquelle le fichier de profil de couleur de 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 .

Remarques

Vous pouvez utiliser les méthodes ImageAttributes ::SetOutputChannel et ImageAttributes ::SetOutputChannelColorProfile 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 écriviez du code qui effectue les étapes suivantes :

  1. Créez un objet Image .
  2. Créez un objet ImageAttributes .
  3. Passez ColorChannelFlagsC à la méthode ImageAttributes ::SetOutputChannel de l’objet ImageAttributes .
  4. Transmettez le nom du chemin d’accès d’un fichier de profil de couleur à la méthode ImageAttributes ::SetOutputChannelColorProfile de l’objet ImageAttributes .
  5. Passez les adresses des objets Image et ImageAttributes à la méthode DrawImage .
Windows GDI+ utilise le fichier de profil de couleur pour calculer la composante cyan de chaque pixel de l’image, et chaque pixel de l’image rendue est une nuance de gris qui indique l’intensité de son canal cyan.

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 fichier de profil de couleur de canal de sortie pour la catégorie par défaut et un autre fichier de profil de couleur de 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 fichier de profil de couleur du canal de sortie pour la catégorie bitmap en passant ColorAdjustTypeBitmap à la méthode ImageAttributes ::SetOutputChannelColorProfile , 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 appelle sa méthode ImageAttributes ::SetOutputChannelColorProfile pour spécifier un fichier de profil pour la catégorie bitmap. L’appel à ImageAttributes ::SetOutputChannel définit le canal de sortie (pour la catégorie bitmap) sur cyan. 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_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); 
}
				

Le code précédent, ainsi que les fichiers Mosaic2.bmp et Tekph600.icm, ont produit la sortie suivante.

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

Configuration requise

Condition requise Valeur
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 ::SetOutputChannel