ImageAttributes::ClearBrushRemapTable-Methode (gdiplusimageattributes.h)
Die ImageAttributes::ClearBrushRemapTable-Methode löscht die Pinselfarbtabelle dieses ImageAttributes-Objekts .
Syntax
Status ClearBrushRemapTable();
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
Ein ImageAttributes-Objekt verwaltet Farb- und Graustufeneinstellungen für fünf Anpassungskategorien: Standard, Bitmap, Pinsel, Stift und Text. Sie können beispielsweise eine Farbzuordnungstabelle für die Standardkategorie, eine andere Farbzuordnungstabelle für die Bitmapkategorie und weiterhin eine andere Farbzuordnungstabelle für die Pinselkategorie 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 Pinselkategorie angeben, gelten die Standardeinstellungen für die Pinselkategorie.
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 Standardtabelle für die Neuzuordnung an, die Rot in Grün konvertiert, und Sie geben einen Gamma-Standardwert von 1,8 an. Wenn Sie ImageAttributes::SetBrushRemapTable aufrufen, gelten die Standardmäßige Neuzuordnungstabelle (rot zu grün) und der Gammastandardwert (1.8) nicht für Pinsel. Wenn Sie später ImageAttributes::ClearBrushRemapTable aufrufen, rückgängig machen die Pinselkategorie nicht in die Standard-Neuzuordnungstabelle, sondern die Pinselkategorie enthält keine Neuzuordnungstabelle. Ebenso wird die Pinselkategorie nicht auf den Gamma-Standardwert rückgängig machen, sondern die Pinselkategorie hat keinen Gammawert.
Beispiele
Im folgenden Beispiel wird ein Image-Objekt aus einer EMF-Datei erstellt. Der Code erstellt auch ein ImageAttributes-Objekt . Der Aufruf von ImageAttributes::SetRemapTable legt die Standardtabelle für die Farbzuordnung des ImageAttributes-Objekts auf eine Tabelle fest, die Rot in Blau konvertiert. Der Aufruf von ImageAttributes::SetBrushRemapTable legt die Pinsel-Umzuordnungstabelle des ImageAttributes-Objekts auf eine Tabelle fest, die Rot in Grün konvertiert.
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 wird. Beim zweiten Zeichnen des Bilds (nach dem Aufruf von ImageAttributes::SetRemapTable) wird das gesamte Rot in Blau konvertiert. Beim dritten Zeichnen des Bilds (nach dem Aufruf von ImageAttributes::SetBrushRemapTable) wird das gesamte mit einem Pinsel gemalte Rot in Grün konvertiert, und der Rest des Rots wird in Blau konvertiert. Beim vierten Zeichnen des Bilds (nach dem Aufruf von ImageAttributes::ClearBrushRemapTable) bleibt das gesamte mit einem Pinsel gezeichnete Rot unverändert, und der Rest des Rots wird in Blau konvertiert.
VOID Example_SetClearBrushRemap(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"TestMetafile4.emf");
ImageAttributes imAtt;
ColorMap defaultMap;
defaultMap.oldColor = Color(255, 255, 0, 0); // red converted to blue
defaultMap.newColor = Color(255, 0, 0, 255);
ColorMap brushMap;
brushMap.oldColor = Color(255, 255, 0, 0); // red converted to green
brushMap.newColor = Color(255, 0, 255, 0);
// Set the default color-remap table.
imAtt.SetRemapTable(1, &defaultMap, ColorAdjustTypeDefault);
// Draw the image (metafile) using no color adjustment.
graphics.DrawImage(
&image,
Rect(10, 10, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel);
// Draw the image (metafile) using default color adjustment.
// All red is converted to blue.
graphics.DrawImage(
&image,
Rect(10, 90, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Set the brush remap table.
imAtt.SetBrushRemapTable(1, &brushMap);
// Draw the image (metafile) using default and brush adjustment.
// Red painted with a brush is converted to green.
// All other red is converted to blue (default).
graphics.DrawImage(
&image,
Rect(10, 170, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Clear the brush remap table.
imAtt.ClearBrushRemapTable();
// Draw the image (metafile) using only default color adjustment.
// Red painted with a brush gets no color adjustment.
// All other red is converted to blue (default).
graphics.DrawImage(
&image,
Rect(10, 250, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
}
Der vorherige Code hat zusammen mit einer bestimmten Datei, Testmetafile4.emf, die folgende Ausgabe erzeugt. Die Auslassungspunkte in der linken Spalte wurden mit einem Stift gezeichnet, und die Auslassungspunkte in der rechten Spalte wurden mit einem Pinsel gefüllt. Beachten Sie, dass die standardremap-Tabelle für die mit einem Stift gezeichneten Auslassungspunkte gilt. Die Umzuordnungstabelle, die für die mit einem Pinsel gefüllten Auslassungspunkte gilt, variiert je nach den Aufrufen ImageAttributes::SetBrushRemapTable und ImageAttributes::ClearBrushRemapTable .
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::ClearRemapTable
ImageAttributes::SetBrushRemapTable