Condividi tramite


Metodo ImageAttributes::ClearBrushRemapTable (gdiplusimageattributes.h)

Il metodo ImageAttributes::ClearBrushRemapTable cancella la tabella color-remap del pennello di questo oggetto ImageAttributes .

Sintassi

Status ClearBrushRemapTable();

Valore restituito

Tipo: Stato

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

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

Commenti

Un oggetto ImageAttributes mantiene le impostazioni di colore e gradazioni di grigio per cinque categorie di regolazione: default, bitmap, brush, pen e text. Ad esempio, è possibile specificare una tabella color-remap per la categoria predefinita, una tabella color-remap diversa per la categoria bitmap e ancora una tabella diversa per la categoria pennello.

Le impostazioni predefinite di regolazione del colore e della scala di grigio si applicano a tutte le categorie che non dispongono di impostazioni di regolazione personalizzate. Ad esempio, se non si specificano mai impostazioni di regolazione per la categoria pennello, le impostazioni predefinite si applicano alla categoria pennello.

Non appena si specifica un'impostazione di regolazione del colore o della scala di grigi per una determinata categoria, le impostazioni di regolazione predefinite non si applicano più a tale categoria. Si supponga, ad esempio, di specificare una tabella di mapping predefinita che converte il rosso in verde e si specifica un valore gamma predefinito pari a 1,8. Se si chiama ImageAttributes::SetBrushRemapTable, la tabella di rieseguire il mapping predefinito (da rosso a verde) e il valore gamma predefinito (1,8) non verrà applicato ai pennelli. Se in un secondo momento chiami ImageAttributes::ClearBrushRemapTable, la categoria di pennello non verrà ripristinata alla tabella di mapping predefinita; invece, la categoria pennello non avrà una tabella di nuovo mappa. Analogamente, la categoria pennello non ripristina il valore gamma predefinito; invece, la categoria pennello non avrà alcun valore gamma.

Esempio

Nell'esempio seguente viene creato un oggetto Image da un file con estensione emf. Il codice crea anche un oggetto ImageAttributes . La chiamata a ImageAttributes::SetRemapTable imposta la tabella predefinita color-remap dell'oggetto ImageAttributes su una tabella che converte il rosso in blu. La chiamata a ImageAttributes::SetBrushRemapTable imposta la tabella del mapping del pennello dell'oggetto ImageAttributes su una tabella che converte il rosso in verde.

Il codice chiama DrawImage una volta per disegnare l'immagine senza alcuna regolazione del colore. Il codice chiama quindi DrawImage tre volte più, ogni volta che passa l'indirizzo dell'oggetto Image e l'indirizzo dell'oggetto ImageAttributes . La seconda volta che l'immagine viene disegnata (dopo la chiamata a ImageAttributes::SetRemapTable), tutto il rosso viene convertito in blu. La terza volta che l'immagine viene disegnata (dopo la chiamata a ImageAttributes::SetBrushRemapTable), tutto il rosso dipinto con un pennello viene convertito in verde e il resto del rosso viene convertito in blu. La quarta volta che l'immagine viene disegnata (dopo la chiamata a ImageAttributes::ClearBrushRemapTable), tutto il rosso dipinto con un pennello rimane invariato e il resto del rosso viene convertito in blu.


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

   Image image(L"TestMetafile4.emf");
   ImageAttributes imAtt;

   ColorMap defaultMap;
   defaultMap.oldColor = Color(255, 255, 0, 0);   // red converted to blue
   defaultMap.newColor = Color(255, 0, 0, 255);

   ColorMap brushMap;
   brushMap.oldColor = Color(255, 255, 0, 0);     // red converted to green
   brushMap.newColor = Color(255, 0, 255, 0);

   // Set the default color-remap table.
   imAtt.SetRemapTable(1, &defaultMap, ColorAdjustTypeDefault);

   // Draw the image (metafile) using no color adjustment.
   graphics.DrawImage(
      &image,
      Rect(10, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel);

   // Draw the image (metafile) using default color adjustment.
   // All red is converted to blue.
   graphics.DrawImage(
      &image,
      Rect(10, 90, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Set the brush remap table.
   imAtt.SetBrushRemapTable(1, &brushMap);

   // Draw the image (metafile) using default and brush adjustment.
   // Red painted with a brush is converted to green.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 170, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);

   // Clear the brush remap table.
   imAtt.ClearBrushRemapTable();

   // Draw the image (metafile) using only default color adjustment.
   // Red painted with a brush gets no color adjustment.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 250, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);  
}
				

Il codice precedente, insieme a un particolare file, Testmetafile4.emf, ha prodotto l'output seguente. I puntini di sospensione nella colonna sinistra sono stati disegnati con una penna e i puntini di sospensione nella colonna destra sono stati riempiti con un pennello. Si noti che la tabella di mapping predefinita si applica ai puntini di sospensione disegnati con una penna. La tabella di mapping applicata ai puntini di sospensione riempita con un pennello varia in base alle chiamate ImageAttributes::SetBrushRemapTable e ImageAttributes::ClearBrushRemapTable .

Illustrazione che mostra quattro puntini di sospensione vuoti; il primo è rosso e il resto blu, quindi quattro ellissi piene: rosso, blu, verde e rosso

Requisiti

   
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

Color

Coloradjusttype

ColorMap

Immagine

Imageattributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

Metafile

Ricolorazione