Compartir a través de


Método ImageAttributes::SetColorKey (gdiplusimageattributes.h)

El método ImageAttributes::SetColorKey establece la clave de color (intervalo de transparencia) de una categoría especificada.

Sintaxis

Status SetColorKey(
  [in, ref]      const Color &   colorLow,
  [in, ref]      const Color &   colorHigh,
  [in, optional] ColorAdjustType type
);

Parámetros

[in, ref] colorLow

Tipo: color const

Referencia a un objeto Color que especifica el valor de clave de color bajo.

[in, ref] colorHigh

Tipo: color const

Referencia a un objeto Color que especifica el valor de clave de color alto.

[in, optional] type

Tipo: ColorAdjustType

Elemento de la enumeración ColorAdjustType que especifica la categoría para la que se establece la clave de color. El valor predeterminado es ColorAdjustTypeDefault.

Valor devuelto

Tipo: Estado

Si el método se ejecuta correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

Este método establece los valores de clave de color alto y bajo para que la gama de colores se pueda hacer transparente. Cualquier color que tenga cada uno de sus tres componentes (rojo, verde, azul) entre los componentes correspondientes de las teclas de color alto y bajo se hace transparente.

Un objeto ImageAttributes mantiene la configuración de color y escala de grises para cinco categorías de ajuste: predeterminado, mapa de bits, pincel, lápiz y texto. Por ejemplo, puede especificar una clave de color para la categoría predeterminada, una clave de color diferente para la categoría de mapa de bits y una clave de color diferente para la categoría de lápiz.

La configuración predeterminada de ajuste de escala de grises y color se aplica a todas las categorías que no tienen ajustes de ajuste propios. Por ejemplo, si nunca especifica ninguna configuración de ajuste para la categoría de lápiz, la configuración predeterminada se aplica a la categoría de lápiz.

En cuanto especifique un ajuste de ajuste de escala de grises o de color para una determinada categoría, la configuración de ajuste predeterminada ya no se aplica a esa categoría. Por ejemplo, supongamos que especifica una colección de opciones de ajuste para la categoría predeterminada. Si establece la clave de color para la categoría de lápiz pasando ColorAdjustTypePen al método ImageAttributes::SetColorKey , ninguna de las opciones de ajuste predeterminadas se aplicará a los lápices.

Ejemplos

En el ejemplo siguiente se crea un objeto Image a partir de un archivo .bmp. El código también crea un objeto ImageAttributes . La llamada a ImageAttributes::SetColorKey establece la clave de color de mapa de bits del objeto ImageAttributes para que cualquier color que cumpla las tres condiciones siguientes sea transparente:

  • El componente rojo está comprendido entre 100 y 250.
  • El componente verde está comprendido entre 95 y 245.
  • El componente azul está comprendido entre 30 y 60.

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

   // Create an Image object based on a BMP file.
   // The image has three horizontal stripes.
   // The color of the top stripe has RGB components (90, 90, 20).
   // The color of the middle stripe has RGB components (150, 150, 150).
   // The color of the bottom stripe has RGB components (130, 130, 40).
   Image image(L"ColorKeyTest.bmp");

   // Create an ImageAttributes object, and set its color key.
   ImageAttributes imAtt;
   imAtt.SetColorKey(
      Color(100, 95, 30),
      Color(250, 245, 60),
      ColorAdjustTypeBitmap);

   // Draw the image. Apply the color key.
   // The bottom stripe of the image will be transparent because
   // 100 <= 130 <= 250 and
   // 95  <= 130 <= 245 and
   // 30  <= 40  <= 60.
   graphics.DrawImage(
      &image, 
      Rect(20, 20, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);
}
				

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusimageattributes.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Bitmap

Color

ColorAdjustType

Imagen

ImageAttributes

ImageAttributes::ClearColorKey

ImageAttributes::ClearThreshold

ImageAttributes::SetThreshold

Metarchivo de

Cambio de color