Método ImageAttributes::ClearNoOp (gdiplusimageattributes.h)
El método ImageAttributes::ClearNoOp borra la configuración NoOp de una categoría especificada.
Sintaxis
Status ClearNoOp(
[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 el valor NoOp. 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
Puede deshabilitar el ajuste de color para un tipo de objeto determinado llamando al método ImageAttributes::SetNoOp . Más adelante, puede restablecer el ajuste de color para ese tipo de objeto llamando al método ImageAttributes::ClearNoOp . Por ejemplo, la siguiente instrucción deshabilita el ajuste de color de los pinceles:
myImageAttributes.SetNoOp(ColorAdjustTypeBrush);
La siguiente instrucción restablece el ajuste de color del pincel que estaba en su lugar antes de la llamada a ImageAttributes::SetNoOp:
myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);
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 llamada ImageAttributes::SetColorMatrix establece la matriz de ajuste de color del pincel de ese objeto ImageAttributes en una matriz que convierte rojo a verde.
El código llama a DrawImage tres veces, cada vez que pasa la dirección del objeto Image y la dirección del objeto ImageAttributes . Cuando la imagen se dibuja por primera vez, todo el rojo pintado por pinceles se convierte en verde. (No se cambia el rojo dibujado por lápices). Antes de dibujar la imagen por segunda vez, el código llama al método ImageAttributes::SetNoOp del objeto ImageAttributes . Por lo tanto, cuando la imagen se dibuja por segunda vez, no se aplica ningún ajuste de color a pinceles. Antes de dibujar la imagen la tercera vez, el código llama al método ImageAttributes::ClearNoOp , que restablece la configuración de ajuste de color del pincel. Por lo tanto, cuando la imagen se dibuja la tercera vez, todos los rojos pintados por pinceles se convierten en verde.
VOID Example_SetClearNoOp(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"TestMetafile4.emf");
ImageAttributes imAtt;
ColorMatrix brushMatrix = { // red converted to green
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
imAtt.SetColorMatrix(
&brushMatrix,
ColorMatrixFlagsDefault,
ColorAdjustTypeBrush);
// Draw the image (metafile) using brush color adjustment.
// Items filled with a brush change from red to green.
graphics.DrawImage(
&image,
Rect(0, 0, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Temporarily disable brush color adjustment.
imAtt.SetNoOp(ColorAdjustTypeBrush);
// Draw the image (metafile) without brush color adjustment.
// There is no change from red to green.
graphics.DrawImage(
&image,
Rect(0, 80, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Reinstate brush color adjustment.
imAtt.ClearNoOp(ColorAdjustTypeBrush);
// Draw the image (metafile) using brush color adjustment.
// Items filled with a brush change from red to green.
graphics.DrawImage(
&image,
Rect(0, 160, 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 |