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:

  1. Erstellen Sie ein Image-Objekt .
  2. Erstellen Sie ein ImageAttributes-Objekt .
  3. Übergeben Sie ColorChannelFlagsC an die ImageAttributes::SetOutputChannel-Methode des ImageAttributes-Objekts .
  4. Übergeben Sie den Pfadnamen einer Farbprofildatei an die ImageAttributes::SetOutputChannelColorProfile-Methode des ImageAttributes-Objekts .
  5. Übergeben Sie die Adressen der Image - und ImageAttributes-Objekte an die DrawImage-Methode .
Windows GDI+ verwendet die Farbprofildatei, um die Cyan-Komponente jedes Pixels im Bild zu berechnen, und jedes Pixel im gerenderten Bild ist ein Grauton, der die Intensität des Cyankanals angibt.

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.

Abbildung mit vier Versionen eines Bilds: zuerst in Farbe, dann in drei verschiedenen Graustufenmustern

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

Coloradjusttype

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannel