Método ImageAttributes::ClearColorKey (gdiplusimageattributes.h)
El método ImageAttributes::ClearColorKey borra la clave de color (intervalo de transparencia) de una categoría especificada.
Sintaxis
Status ClearColorKey(
[in, optional] ColorAdjustType type
);
Parámetros
[in, optional] type
Tipo: ColorAdjustType
Elemento de la enumeración ColorAdjustType que especifica la categoría para la que se borra 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
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 clave de color predeterminada que hace que cualquier color con un componente rojo de 200 a 255 sea transparente y especifique un valor gamma predeterminado de 1,8. Si establece la clave de color de la categoría de lápiz llamando a ImageAttributes::SetColorKey, la clave de color predeterminada y el valor gamma predeterminado no se aplicará a los lápices. Si más adelante borra la tecla de color del lápiz llamando a ImageAttributes::ClearColorKey, la categoría de lápiz no se revertirá a la clave de color predeterminada; en su lugar, la categoría de lápiz no tendrá ninguna clave de color. Del mismo modo, la categoría de lápiz no revertirá al valor gamma predeterminado; en su lugar, la categoría del lápiz no tendrá ningún valor gamma.
Ejemplos
En el ejemplo siguiente se crea un objeto Image a partir de un archivo .emf. El código también crea un objeto ImageAttributes . La primera llamada a ImageAttributes::SetColorKey establece la clave de color predeterminada del objeto ImageAttributes para que los colores con un componente rojo de 80 a 120 sean transparentes. La segunda llamada a ImageAttributes::SetColorKey establece la clave de color del lápiz del objeto ImageAttributes para que todos los colores con un componente rojo de 135 a 175 sean transparentes.
El código llama a DrawImage una vez para dibujar la imagen sin ningún ajuste de color. A continuación, el código llama a DrawImage tres veces más, cada vez que pasa la dirección del objeto Image y la dirección del objeto ImageAttributes . La segunda vez que se dibuja la imagen (después de la llamada que establece la clave de color predeterminada), todo el rojo de 80 a 120 es transparente. La tercera vez que se dibuja la imagen (después de la llamada que establece la tecla de color del lápiz), todo el rojo de 135 a 175 que se dibuja con un lápiz es transparente. Además, todo el rojo de 80 a 120 que no se dibuja con un lápiz es transparente. La cuarta vez que se dibuja la imagen (después de la llamada a ImageAttributes::ClearColorKey), ninguno de los rojo dibujados con un lápiz es transparente. Además, todo el rojo de 80 a 120 que no se dibuja con un lápiz es transparente.
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);
}
El código anterior, junto con un archivo determinado, TestMetafile5.png, generó la siguiente salida. Las barras de la columna izquierda se dibujaron con un lápiz y las barras de la columna derecha se rellenaron con un pincel. La clave de color predeterminada se aplica a las barras rellenadas con un pincel. La clave de color que se aplica a las barras dibujadas con un lápiz varía según las llamadas ImageAttributes::SetColorKey e ImageAttributes::ClearColorKey .
Requisitos
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 |