ImageAttributes::SetOutputChannel-Methode (gdiplusimageattributes.h)
Die ImageAttributes::SetOutputChannel-Methode legt den CMYK-Ausgabekanal für eine angegebene Kategorie fest.
Syntax
Status SetOutputChannel(
[in] ColorChannelFlags channelFlags,
[in, optional] ColorAdjustType type
);
Parameter
[in] channelFlags
Typ: ColorChannelFlags
Element der ColorChannelFlags-Enumeration , das den Ausgabekanal angibt.
[in, optional] type
Typ: ColorAdjustType
Element der ColorAdjustType-Enumeration , das die Kategorie angibt, für die der Ausgabekanal festgelegt ist. Der Standardwert ist ColorAdjustTypeDefault.
Rückgabewert
Typ: Status
Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .
Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.
Hinweise
Sie können die ImageAttributes::SetOutputChannel-Methode verwenden, um ein Bild in einen CMYK-Farbraum (Cyan-Magenta-Yellow-Black) zu konvertieren und die Intensitäten eines der CMYK-Farbkanäle zu untersuchen. Angenommen, Sie erstellen ein ImageAttributes-Objekt und legen dessen Bitmapausgabekanal auf ColorChannelFlagsC fest. Wenn Sie die Adresse dieses ImageAttributes-Objekts an die DrawImage-Methode übergeben, wird die Cyan-Komponente jedes Pixels berechnet, und jedes Pixel im gerenderten Bild ist ein Grauton, der die Intensität des Cyankanals angibt. Ebenso können Sie Bilder rendern, die die Intensität der Magenta-, Gelb- und Schwarzkanäle angeben.
Ein ImageAttributes-Objekt verwaltet Farb- und Graustufeneinstellungen für fünf Anpassungskategorien: Standard, Bitmap, Pinsel, Stift und Text. Sie können beispielsweise einen Ausgabekanal für die Standardkategorie und einen anderen Ausgabekanal für die Bitmapkategorie angeben.
Die Standardeinstellungen für Farb- und Graustufenanpassung gelten für alle Kategorien, die keine eigenen Anpassungseinstellungen haben. Wenn Sie beispielsweise niemals Anpassungseinstellungen für die Bitmapkategorie angeben, gelten die Standardeinstellungen für die Bitmapkategorie.
Sobald Sie eine Farb- oder Graustufenanpassungseinstellung für eine bestimmte Kategorie angeben, gelten die Standardeinstellungseinstellungen nicht mehr für diese Kategorie. Angenommen, Sie geben eine Sammlung von Anpassungseinstellungen für die Standardkategorie an. Wenn Sie den Ausgabekanal für die Bitmapkategorie festlegen, indem Sie ColorAdjustTypeBitmap an die ImageAttributes::SetOutputChannel-Methode übergeben, gilt keine der Standardanpassungseinstellungen für Bitmaps.
Beispiele
Im folgenden Beispiel wird ein Image-Objekt erstellt und die DrawImage-Methode aufgerufen, um das Bild zu zeichnen. Anschließend erstellt der Code ein ImageAttributes-Objekt und legt dessen Bitmapausgabekanal auf Cyan (ColorChannelFlagsC) fest. Der Code ruft DrawImage ein zweites Mal auf und übergibt die Adresse des Image-Objekts und die Adresse des ImageAttributes-Objekts . Der Cyan-Kanal jedes Pixels wird berechnet, und das gerenderte Bild zeigt die Intensitäten des Cyan-Kanals als Schattierungen von Grau. Der Code ruft DrawImage drei weitere Male auf, um die Intensitäten der Kanäle Magenta, Gelb und Schwarz anzuzeigen.
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);
}
Die folgende Abbildung zeigt die Ausgabe des vorangehenden Codes.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdiplusimageattributes.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |
Weitere Informationen
ImageAttributes::ClearOutputChannel