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

La méthode ImageAttributes::ClearColorKey efface la clé de couleur (plage de transparence) pour une catégorie spécifiée.

Syntaxe

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

Paramètres

[in, optional] type

Type : ColorAdjustType

Élément de l’énumération ColorAdjustType qui spécifie la catégorie pour laquelle la clé de couleur est effacée. La valeur par défaut est ColorAdjustTypeDefault.

Valeur retournée

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 couleur 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 clé de couleur pour la catégorie par défaut, une autre clé de couleur pour la catégorie bitmap et une clé de couleur différente pour la catégorie de stylet.

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 leurs propres paramètres d’ajustement. Par exemple, si vous ne spécifiez jamais de paramètres d’ajustement pour la catégorie de stylet, les paramètres par défaut s’appliquent à la catégorie de stylet.

Dès que vous spécifiez un paramètre de réglage des couleurs ou des nuances de gris pour une certaine catégorie, les paramètres d’ajustement par défaut ne s’appliquent plus à cette catégorie. Par exemple, supposons que vous spécifiez une clé de couleur par défaut qui rend transparente toute couleur avec un composant rouge de 200 à 255 et que vous spécifiez une valeur gamma par défaut de 1,8. Si vous définissez la clé de couleur de la catégorie de stylet en appelant ImageAttributes::SetColorKey, la clé de couleur par défaut et la valeur gamma par défaut ne s’appliquent pas aux stylets. Si vous effacez ultérieurement la touche de couleur du stylet en appelant ImageAttributes::ClearColorKey, la catégorie de stylet ne rétablit pas la clé de couleur par défaut ; au lieu de cela, la catégorie de stylet n’aura pas de touche de couleur. De même, la catégorie de stylet ne rétablit pas la valeur gamma par défaut ; au lieu de cela, la catégorie de stylet n’aura pas de valeur gamma.

Exemples

L’exemple suivant crée un objet Image à partir d’un fichier .emf. Le code crée également un objet ImageAttributes . Le premier appel à ImageAttributes::SetColorKey définit la clé de couleur par défaut de l’objet ImageAttributes afin que les couleurs avec un composant rouge de 80 à 120 soient transparentes. Le deuxième appel à ImageAttributes::SetColorKey définit la clé de couleur du stylet de l’objet ImageAttributes afin que toutes les couleurs avec un composant rouge de 135 à 175 soient transparentes.

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 fois en passant l’adresse de l’objet Image et l’adresse de l’objet ImageAttributes . La deuxième fois que l’image est dessinée (après l’appel qui définit la clé de couleur par défaut), tout le rouge de 80 à 120 est transparent. La troisième fois que l’image est dessinée (après l’appel qui définit la touche de couleur du stylet), tout le rouge de 135 à 175 dessiné avec un stylet est transparent. En outre, tout le rouge de 80 à 120 qui n’est pas dessiné avec un stylet est transparent. La quatrième fois que l’image est dessinée (après l’appel à ImageAttributes::ClearColorKey), aucune des images rouges dessinées avec un stylet n’est transparente. En outre, tout le rouge de 80 à 120 qui n’est pas dessiné avec un stylet est 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); 
}
				

Le code précédent, ainsi qu’un fichier particulier, TestMetafile5.png, ont produit la sortie suivante. Les barres de la colonne de gauche ont été dessinées avec un stylet, et les barres de la colonne de droite ont été remplies d’un pinceau. La clé de couleur par défaut s’applique aux barres remplies d’un pinceau. La clé de couleur qui s’applique aux barres dessinées avec un stylet varie en fonction des appels ImageAttributes::SetColorKey et ImageAttributes::ClearColorKey .

Illustration montrant des barres dans quatre lignes de deux colonnes chacune ; les deux derniers ont un nombre inégaux de barres dans chaque ligne

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 (incluez Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Bitmap

Color

ColorAdjustType

Image

ImageAttributes

ImageAttributes::ClearThreshold

ImageAttributes::SetColorKey

ImageAttributes::SetThreshold

Metafile

Recolorisation