Freigeben über


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.

Abbildung mit fünf Versionen eines Bilds: zuerst in Farbe, dann in vier verschiedenen Graustufenmustern

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

Coloradjusttype

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile