ImageAttributes::SetOutputChannelColorProfile-Methode (gdiplusimageattributes.h)
Die ImageAttributes::SetOutputChannelColorProfile-Methode legt die Ausgabekanalfarbprofildatei für eine angegebene Kategorie fest.
Syntax
Status SetOutputChannelColorProfile(
[in] const WCHAR *colorProfileFilename,
[in, optional] ColorAdjustType type
);
Parameter
[in] colorProfileFilename
Typ: const WCHAR*
Pfadname einer Farbprofildatei. Wenn sich die Farbprofildatei im Verzeichnis %SystemRoot%\System32\Spool\Drivers\Color befindet, kann dieser Parameter der Dateiname sein. Andernfalls muss es sich bei diesem Parameter um den voll gekennzeichneten Pfadnamen handeln.
[in, optional] type
Typ: ColorAdjustType
Element der ColorAdjustType-Enumeration , das die Kategorie angibt, für die die Ausgabekanalfarbprofildatei 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, gibt sie eines der anderen Elemente der Status-Enumeration zurück.
Hinweise
Sie können die Methoden ImageAttributes::SetOutputChannel und ImageAttributes::SetOutputChannelColorProfile verwenden, um ein Bild in einen CMYK-Farbraum (Cyan-Magenta-Yellow-Black) zu konvertieren und die Intensitäten eines CMYK-Farbkanals zu untersuchen. Angenommen, Sie schreiben Code, der die folgenden Schritte ausführt:
- Erstellen Sie ein Image-Objekt .
- Erstellen Sie ein ImageAttributes-Objekt .
- Übergeben Sie ColorChannelFlagsC an die ImageAttributes::SetOutputChannel-Methode des ImageAttributes-Objekts .
- Übergeben Sie den Pfadnamen einer Farbprofildatei an die ImageAttributes::SetOutputChannelColorProfile-Methode des ImageAttributes-Objekts .
- Übergeben Sie die Adressen der Image - und ImageAttributes-Objekte an die DrawImage-Methode .
Ein ImageAttributes-Objekt verwaltet Farb- und Graustufeneinstellungen für fünf Anpassungskategorien: Standard, Bitmap, Pinsel, Stift und Text. Beispielsweise können Sie eine Ausgabekanalfarbprofildatei für die Standardkategorie und eine andere Ausgabekanalfarbprofildatei 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 nie Anpassungseinstellungen für die Bitmapkategorie angeben, gelten die Standardeinstellungen für die Bitmapkategorie.
Sobald Sie eine Einstellung zur Farb- oder Graustufenanpassung 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 die Farbprofildatei des Ausgabekanals für die Bitmapkategorie festlegen, indem Sie ColorAdjustTypeBitmap an die ImageAttributes::SetOutputChannelColorProfile-Methode übergeben, gelten 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 ruft dessen ImageAttributes::SetOutputChannelColorProfile-Methode auf, um eine Profildatei für die Bitmapkategorie anzugeben. Der Aufruf von ImageAttributes::SetOutputChannel legt den Ausgabekanal (für die Bitmapkategorie) auf Cyan fest. Der Code ruft DrawImage ein zweites Mal auf und übergibt die Adresse des Image-Objekts und die Adresse des ImageAttributes-Objekts . Der Cyankanal jedes Pixels wird berechnet, und das gerenderte Bild zeigt die Intensitäten des Cyankanals als Grauschatten an. Der Code ruft DrawImage drei weitere Male auf, um die Intensitäten der Kanäle Magenta, Gelb und Schwarz anzuzeigen.
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);
}
Der vorherige Code hat zusammen mit den Dateien Mosaic2.bmp und Tekph600.icm die folgende Ausgabe erzeugt.
Anforderungen
Anforderung | Wert |
---|---|
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