Condividi tramite


Metodo ImageAttributes::SetRemapTable (gdiplusimageattributes.h)

Il metodo ImageAttributes::SetRemapTable imposta la tabella color-remap per una categoria specificata.

Sintassi

Status SetRemapTable(
  [in]           UINT            mapSize,
  [in]           const ColorMap  *map,
  [in, optional] ColorAdjustType type
);

Parametri

[in] mapSize

Tipo: UINT

INT che specifica il numero di elementi nella matrice della mappa .

[in] map

Tipo: const ColorMap*

Puntatore a una matrice di strutture ColorMap che definisce la mappa dei colori.

[in, optional] type

Tipo: ColorAdjustType

Elemento dell'enumerazione ColorAdjustType che specifica la categoria per cui è impostata la tabella color-remap. Il valore predefinito è ColorAdjustTypeDefault.

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

Una tabella color-remap è una matrice di strutture ColorMap . Ogni struttura ColorMap ha due oggetti Color : uno che specifica un colore precedente e uno che specifica un nuovo colore corrispondente. Durante il rendering, qualsiasi colore corrispondente a uno dei colori precedenti nella tabella di nuovo mapping viene modificato nel nuovo colore corrispondente.

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 nuova mappa dei colori per la categoria predefinita, una tabella color-remap per la categoria bitmap e ancora una tabella diversa per la categoria della penna.

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 della penna, le impostazioni predefinite si applicano alla categoria della penna.

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 raccolta di impostazioni di regolazione per la categoria predefinita. Se si imposta la tabella color-remap per la categoria della penna passando ColorAdjustTypePen al metodo ImageAttributes::SetRemapTable , nessuna delle impostazioni di regolazione predefinite verrà applicata alle penne.

Esempio

L'esempio seguente crea un oggetto Image basato su un file .bmp e quindi disegna l'immagine. Il codice crea un oggetto ImageAttributes e imposta la tabella di rieseguire il mapping predefinito in modo che il rosso venga convertito in blu. Il codice disegna quindi di nuovo l'immagine usando la regolazione del colore specificata dalla tabella di nuovo mapping.


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

   // Create an Image object based on a .bmp file.
   // The image has one red stripe and one green stripe.
   Image image(L"RedGreenStripes.bmp");

   // Create an ImageAttributes object and set its remap table.
   ImageAttributes imageAtt;
   ColorMap cMap;
   cMap.oldColor = Color(255, 255, 0, 0);  // red 
   cMap.newColor = Color(255, 0, 0, 255);  // blue
   imageAtt.SetRemapTable(12, &cMap,
      ColorAdjustTypeDefault);

   // Draw the image with no color adjustment.
   graphics.DrawImage(&image, 10, 10, image.GetWidth(), image.GetHeight());
 
   // Draw the image with red converted to blue.
   graphics.DrawImage(&image,
      Rect(100, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imageAtt);
}
				

La figura seguente mostra l'output del codice precedente.

Illustrazione che mostra un rettangolo con aree rosse e verdi, quindi lo stesso rettangolo con l'area rossa sostituita con blu

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

Metafile

Ricolorazione