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 .
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
ImageAttributes::ClearRemapTable
ImageAttributes::SetBrushRemapTable