Partager via


Méthode ImageAttributes::ClearBrushRemapTable (gdiplusimageattributes.h)

La méthode ImageAttributes::ClearBrushRemapTable efface la table brush color-remap de cet objet ImageAttributes .

Syntaxe

Status ClearBrushRemapTable();

Valeur de retour

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Notes

Un objet ImageAttributes conserve les paramètres de couleurs et de nuances de gris pour cinq catégories d’ajustement : par défaut, bitmap, pinceau, stylet et texte. Par exemple, vous pouvez spécifier une table de remappage des couleurs pour la catégorie par défaut, une table de remappage de couleurs différente pour la catégorie bitmap et toujours une autre table de remappage des couleurs pour la catégorie pinceau.

Les paramètres de réglage des couleurs et des nuances de gris par défaut s’appliquent à toutes les catégories qui n’ont pas de paramètres d’ajustement propres. Par exemple, si vous ne spécifiez jamais de paramètres d’ajustement pour la catégorie de pinceau, les paramètres par défaut s’appliquent à la catégorie de pinceau.

Dès que vous spécifiez un paramètre de réglage des couleurs ou des nuances de gris pour une catégorie donnée, les paramètres d’ajustement par défaut ne s’appliquent plus à cette catégorie. Par exemple, supposons que vous spécifiez une table de remappage par défaut qui convertit le rouge en vert et que vous spécifiez une valeur gamma par défaut de 1,8. Si vous appelez ImageAttributes::SetBrushRemapTable, la table de remappage par défaut (rouge à vert) et la valeur gamma par défaut (1.8) ne s’appliquent pas aux pinceaux. Si vous appelez ultérieurement ImageAttributes::ClearBrushRemapTable, la catégorie de pinceau ne reviendra pas à la table de remappage par défaut ; au lieu de cela, la catégorie de pinceau n’aura pas de table de remappage. De même, la catégorie de pinceau ne revient pas à la valeur gamma par défaut ; au lieu de cela, la catégorie de pinceau n’aura aucune valeur gamma.

Exemples

L’exemple suivant crée un objet Image à partir d’un fichier .emf. Le code crée également un objet ImageAttributes . L’appel à ImageAttributes::SetRemapTable définit la table de remappage des couleurs par défaut de l’objet ImageAttributes en une table qui convertit le rouge en bleu. L’appel à ImageAttributes::SetBrushRemapTable définit la table de remappage de pinceau de l’objet ImageAttributes en une table qui convertit le rouge en vert.

Le code appelle DrawImage une fois pour dessiner l’image sans réglage des couleurs. Ensuite, le code appelle DrawImage trois fois de plus, à chaque passage de l’adresse de l’objet Image et de l’adresse de l’objet ImageAttributes . La deuxième fois que l’image est dessinée (après l’appel à ImageAttributes::SetRemapTable), tout le rouge est converti en bleu. La troisième fois que l’image est dessinée (après l’appel à ImageAttributes::SetBrushRemapTable), tout le rouge peint avec un pinceau est converti en vert et le reste du rouge est converti en bleu. La quatrième fois que l’image est dessinée (après l’appel à ImageAttributes::ClearBrushRemapTable), tout le rouge peint avec un pinceau reste inchangé, et le reste du rouge est converti en bleu.


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);  
}
				

Le code précédent, ainsi qu’un fichier particulier, Testmetafile4.emf, ont produit la sortie suivante. Les points de suspension de la colonne de gauche ont été dessinés avec un stylet et les points de suspension de la colonne de droite ont été remplis avec un pinceau. Notez que la table de remappage par défaut s’applique aux points de suspension dessinés avec un stylet. La table de remappage qui s’applique aux points de suspension remplis avec un pinceau varie en fonction des appels ImageAttributes::SetBrushRemapTable et ImageAttributes::ClearBrushRemapTable .

Illustration montrant quatre points de suspension vides ; le premier est rouge et le reste bleu, puis quatre points de suspension remplis : rouge, bleu, vert et rouge

Spécifications

   
Client minimal pris en charge Windows XP, Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusimageattributes.h (inclure Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Bitmap

Color

ColorAdjustType

Colormap

Image

ImageAttributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

Metafile

Recolorisation