Condividi tramite


Metodo ImageAttributes::ClearNoOp (gdiplusimageattributes.h)

Il metodo ImageAttributes::ClearNoOp cancella l'impostazione NoOp per una categoria specificata.

Sintassi

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

Parametri

[in, optional] type

Tipo: ColorAdjustType

Elemento dell'enumerazione ColorAdjustType che specifica la categoria per cui l'impostazione NoOp è deselezionata. Il valore predefinito è ColorAdjustTypeDefault.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

È possibile disabilitare la regolazione del colore per un determinato tipo di oggetto chiamando il metodo ImageAttributes::SetNoOp . Successivamente, è possibile ripristinare la regolazione del colore per tale tipo di oggetto chiamando il metodo ImageAttributes::ClearNoOp . Ad esempio, l'istruzione seguente disabilita la regolazione dei colori per i pennelli:

myImageAttributes.SetNoOp(ColorAdjustTypeBrush);

L'istruzione seguente reintegra la regolazione del colore del pennello impostati prima della chiamata a ImageAttributes::SetNoOp:

myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);

Esempio

Nell'esempio seguente viene creato un oggetto Image da un file di .emf. Il codice crea anche un oggetto ImageAttributes . La chiamata ImageAttributes::SetColorMatrix imposta la matrice di regolazione del colore del pennello dell'oggetto ImageAttributes in una matrice che converte il rosso in verde.

Il codice chiama DrawImage tre volte, ogni volta che passa l'indirizzo dell'oggetto Image e l'indirizzo dell'oggetto ImageAttributes . Quando l'immagine viene disegnata la prima volta, tutto il rosso dipinto da pennelli viene convertito in verde. (Il rosso disegnato da penne non viene modificato). Prima che l'immagine venga disegnata la seconda volta, il codice chiama il metodo ImageAttributes::SetNoOp dell'oggetto ImageAttributes . Quindi, quando l'immagine viene disegnata la seconda volta, non viene applicata alcuna regolazione del colore ai pennelli. Prima che l'immagine venga disegnata la terza volta, il codice chiama il metodo ImageAttributes::ClearNoOp , che ripristina le impostazioni di regolazione del colore del pennello. Quindi, quando l'immagine viene disegnata la terza volta, tutto il rosso dipinto da pennelli viene convertito in 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);
}
				

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusimageattributes.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Bitmap

Coloradjusttype

Immagine

Imageattributes

ImageAttributes::Reset

ImageAttributes::SetNoOp

ImageAttributes::SetToIdentity

Metafile

Ricolorazione