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 :
- Créez un objet Image .
- Créez un objet ImageAttributes .
- Passez ColorChannelFlagsC à la méthode ImageAttributes ::SetOutputChannel de l’objet ImageAttributes .
- Transmettez le nom du chemin d’accès d’un fichier de profil de couleur à la méthode ImageAttributes ::SetOutputChannelColorProfile de l’objet ImageAttributes .
- Passez les adresses des objets Image et ImageAttributes à la méthode DrawImage .
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.
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
ImageAttributes ::ClearOutputChannel