Freigeben über


ImageAttributes::ClearColorKey-Methode (gdiplusimageattributes.h)

Die ImageAttributes::ClearColorKey-Methode löscht den Farbschlüssel (Transparenzbereich) für eine angegebene Kategorie.

Syntax

Status ClearColorKey(
  [in, optional] ColorAdjustType type
);

Parameter

[in, optional] type

Typ: ColorAdjustType

Element der ColorAdjustType-Enumeration , das die Kategorie angibt, für die der Farbschlüssel gelöscht wird. 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

Ein ImageAttributes-Objekt verwaltet Farb- und Graustufeneinstellungen für fünf Anpassungskategorien: Standard, Bitmap, Pinsel, Stift und Text. Sie können beispielsweise einen Farbschlüssel für die Standardkategorie, einen anderen Farbschlüssel für die Bitmapkategorie und noch einen anderen Farbschlüssel für die Stiftkategorie 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 Stiftkategorie angeben, gelten die Standardeinstellungen für die Stiftkategorie.

Sobald Sie eine Farb- oder Graustufenanpassungseinstellung für eine bestimmte Kategorie angeben, gelten die Standardeinstellungseinstellungen nicht mehr für diese Kategorie. Angenommen, Sie geben einen Standardfarbschlüssel an, der eine beliebige Farbe mit einer roten Komponente von 200 bis 255 transparent macht, und Sie geben einen Standard-Gammawert von 1,8 an. Wenn Sie den Farbschlüssel der Stiftkategorie durch Aufrufen von ImageAttributes::SetColorKey festlegen, gelten der Standardfarbschlüssel und der Standard-Gammawert nicht für Stifte. Wenn Sie die Stiftfarbtaste später durch Aufrufen von ImageAttributes::ClearColorKey löschen, wird die Stiftkategorie nicht zur Standardfarbtaste rückgängig machen, sondern die Stiftkategorie hat keine Farbtaste. Ebenso rückgängig machen die Stiftkategorie nicht auf den Standard-Gammawert. Stattdessen weist die Stiftkategorie keinen Gammawert auf.

Beispiele

Im folgenden Beispiel wird ein Image-Objekt aus einer EMF-Datei erstellt. Der Code erstellt auch ein ImageAttributes-Objekt . Der erste Aufruf von ImageAttributes::SetColorKey legt den Standardfarbschlüssel des ImageAttributes-Objekts fest, sodass Farben mit einer roten Komponente von 80 bis 120 transparent sind. Der zweite Aufruf von ImageAttributes::SetColorKey legt die Stiftfarbtaste des ImageAttributes-Objekts so fest, dass alle Farben mit einer roten Komponente von 135 bis 175 transparent sind.

Der Code ruft DrawImage einmal auf, um das Bild ohne Farbanpassung zu zeichnen. Anschließend ruft der Code DrawImage drei weitere Male auf, wobei jedes Mal die Adresse des Image-Objekts und die Adresse des ImageAttributes-Objekts übergeben werden. Beim zweiten Zeichnen des Bilds (nach dem Aufruf, der den Standardfarbschlüssel festlegt), ist das gesamte Rot von 80 bis 120 transparent. Das dritte Mal, wenn das Bild gezeichnet wird (nach dem Aufruf, der die Stiftfarbtaste festlegt), ist das gesamte Rot von 135 bis 175, das mit einem Stift gezeichnet wird, transparent. Außerdem ist das gesamte Rot von 80 bis 120, das nicht mit einem Stift gezeichnet wird, transparent. Das vierte Mal, wenn das Bild gezeichnet wird (nach dem Aufruf von ImageAttributes::ClearColorKey), ist keine der mit einem Stift gezeichneten roten Elemente transparent. Außerdem ist das gesamte Rot von 80 bis 120, das nicht mit einem Stift gezeichnet wird, transparent.


VOID Example_SetClearColorKey(HDC hdc)
{
   Graphics graphics(hdc);

   Image image(L"TestMetafile5.emf");
   ImageAttributes imAtt;

   // Draw the image (metafile) using no color adjustment.
   graphics.DrawImage(
      &image,
      Rect(0, 0, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),        // source rect
      UnitPixel);

   // Set the default color key.
   imAtt.SetColorKey(
      Color(0, 80, 0, 0),
      Color(255, 120, 255, 255),
      ColorAdjustTypeDefault);

   // Draw the image (metafile) using default color adjustment.
   // Colors with red components from 80 through 120 are transparent.
   graphics.DrawImage(
      &image,
      Rect(0, 100, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Set the pen color key.
   imAtt.SetColorKey(
      Color(0, 135, 0, 0),
      Color(255, 175, 255, 255),
      ColorAdjustTypePen);

   // Draw the image (metafile) using default and pen adjustment.
   // Colors drawn with a pen that have red components from 135 through 175
   // are transparent. Colors not drawn with a pen that have red components
   // from 80 to 120 are transparent.
   graphics.DrawImage(
      &image,
      Rect(0, 200, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Clear the pen color key.
   imAtt.ClearColorKey(ColorAdjustTypePen);

   // Draw the image (metafile) using only default color adjustment.
   // No colors drawn with a pen are transparent. Colors not drawn with 
   // a pen that have red components from 80 to 120 are transparent.
   graphics.DrawImage(
      &image,
      Rect(0, 300, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt); 
}
				

Der vorangehende Code hat zusammen mit einer bestimmten Datei TestMetafile5.png die folgende Ausgabe erzeugt. Die Balken in der linken Spalte wurden mit einem Stift gezeichnet, und die Balken in der rechten Spalte wurden mit einem Pinsel gefüllt. Die Standardfarbtaste gilt für die Balken, die mit einem Pinsel gefüllt sind. Die Farbtaste, die auf die mit einem Stift gezeichneten Balken angewendet wird, variiert je nach den Aufrufen ImageAttributes::SetColorKey und ImageAttributes::ClearColorKey .

Abbildung mit Balken in vier Zeilen mit jeweils zwei Spalten; Die letzten beiden weisen in jeder Zeile eine ungleiche Anzahl von Balken auf.

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

Bitmap

Farbe

Coloradjusttype

Bild

ImageAttributes

ImageAttributes::ClearThreshold

ImageAttributes::SetColorKey

ImageAttributes::SetThreshold

Metafile

Neueinfärbung