Compartir a través de


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 .

Ilustración que muestra cuatro puntos suspensivos vacíos; el primero es rojo y el resto azul, luego cuatro puntos suspensivos rellenos: rojo, azul, verde y rojo

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

Bitmap

Color

ColorAdjustType

ColorMap

Imagen

ImageAttributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

Metarchivo de

Cambio de color