Método ImageAttributes::ClearBrushRemapTable (gdiplusimageattributes.h)
El método ImageAttributes::ClearBrushRemapTable borra la tabla de reasignación de color del pincel de este objeto ImageAttributes .
Sintaxis
Status ClearBrushRemapTable();
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
Un objeto ImageAttributes mantiene la configuración de color y escala de grises para cinco categorías de ajuste: predeterminado, mapa de bits, pincel, lápiz y texto. Por ejemplo, puede especificar una tabla de reasignación de color para la categoría predeterminada, una tabla de reasignación de color diferente para la categoría de mapa de bits y una tabla de reasignación de color diferente para la categoría de pincel.
La configuración predeterminada de ajuste de escala de grises y color se aplica a todas las categorías que no tienen ajustes de ajuste propios. Por ejemplo, si nunca especifica ninguna configuración de ajuste para la categoría de pincel, la configuración predeterminada se aplica a la categoría de pincel.
En cuanto especifique un ajuste de ajuste de escala de grises o de color para una determinada categoría, la configuración de ajuste predeterminada ya no se aplica a esa categoría. Por ejemplo, supongamos que especifica una tabla de reasignación predeterminada que convierte rojo a verde y especifica un valor gamma predeterminado de 1,8. Si llamas a ImageAttributes::SetBrushRemapTable, la tabla de reasignación predeterminada (rojo a verde) y el valor gamma predeterminado (1,8) no se aplicará a los pinceles. Si más adelante llamas a ImageAttributes::ClearBrushRemapTable, la categoría de pincel no volverá a la tabla de reasignación predeterminada; en su lugar, la categoría de pincel no tendrá ninguna tabla de reasignación. Del mismo modo, la categoría de pincel no revertirá al valor gamma predeterminado; en su lugar, la categoría de pincel no tendrá ningún valor gamma.
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 a ImageAttributes::SetRemapTable establece la tabla de reasignación de color predeterminada del objeto ImageAttributes en una tabla que convierte el rojo en azul. La llamada a ImageAttributes::SetBrushRemapTable establece la tabla de reasignación de pincel del objeto ImageAttributes en una tabla que convierte el rojo en verde.
El código llama a DrawImage una vez para dibujar la imagen sin ningún ajuste de color. A continuación, el código llama a DrawImage tres veces más, cada vez que pasa la dirección del objeto Image y la dirección del objeto ImageAttributes . La segunda vez que se dibuja la imagen (después de la llamada a ImageAttributes::SetRemapTable), todo el rojo se convierte en azul. La tercera vez que se dibuja la imagen (después de la llamada a ImageAttributes::SetBrushRemapTable), todo el rojo pintado con un pincel se convierte en verde y el resto del rojo se convierte en azul. La cuarta vez que se dibuja la imagen (después de la llamada a ImageAttributes::ClearBrushRemapTable), todo el rojo pintado con un pincel permanece sin cambios y el resto del rojo se convierte en azul.
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);
}
El código anterior, junto con un archivo determinado, Testmetafile4.emf, generó la siguiente salida. Los puntos suspensivos de la columna izquierda se dibujaron con un lápiz y los puntos suspensivos de la columna derecha se rellenaron con un pincel. Tenga en cuenta que la tabla de reasignación predeterminada se aplica a los puntos suspensivos dibujados con un lápiz. La tabla de reasignación que se aplica a los puntos suspensivos rellenados con un pincel varía según las llamadas a ImageAttributes::SetBrushRemapTable e ImageAttributes::ClearBrushRemapTable .
Requisitos
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
ImageAttributes::ClearRemapTable
ImageAttributes::SetBrushRemapTable