Compartir a través de


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

Consulte también

Bitmap

ColorAdjustType

Imagen

ImageAttributes

ImageAttributes::Reset

ImageAttributes::SetNoOp

ImageAttributes::SetToIdentity

Metarchivo de

Cambio de color