Compartir a través de


Método ImageAttributes::SetRemapTable (gdiplusimageattributes.h)

El método ImageAttributes::SetRemapTable establece la tabla de reasignación de color para una categoría especificada.

Sintaxis

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

Parámetros

[in] mapSize

Tipo: UINT

INT que especifica el número de elementos de la matriz de mapa .

[in] map

Tipo: const ColorMap*

Puntero a una matriz de estructuras ColorMap que define el mapa de colores.

[in, optional] type

Tipo: ColorAdjustType

Elemento de la enumeración ColorAdjustType que especifica la categoría para la que se establece la tabla de reasignación de colores. El valor predeterminado es ColorAdjustTypeDefault.

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

Una tabla de reasignación de colores es una matriz de estructuras ColorMap . Cada estructura ColorMap tiene dos objetos Color : uno que especifica un color antiguo y otro que especifica un nuevo color correspondiente. Durante la representación, cualquier color que coincida con uno de los colores antiguos de la tabla de reasignación se cambia al nuevo color correspondiente.

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 un mapa de color para la categoría predeterminada, una tabla de reasignación de color para la categoría de mapa de bits y una tabla de reasignación de color diferente para la categoría de lápiz.

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 lápiz, la configuración predeterminada se aplica a la categoría de lápiz.

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 colección de opciones de ajuste para la categoría predeterminada. Si establece la tabla de reasignación de color para la categoría de lápiz pasando ColorAdjustTypePen al método ImageAttributes::SetRemapTable , no se aplicará ninguna de las opciones de ajuste predeterminadas a los lápices.

Ejemplos

En el ejemplo siguiente se crea un objeto Image basado en un archivo .bmp y, a continuación, se dibuja la imagen. El código crea un objeto ImageAttributes y establece su tabla de reasignación predeterminada para que el rojo se convierta en azul. A continuación, el código vuelve a dibujar la imagen con el ajuste de color especificado por la tabla de reasignación.


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);
}
				

En la ilustración siguiente se muestra la salida del código anterior.

Ilustración que muestra un rectángulo con regiones rojas y verdes y, a continuación, el mismo rectángulo con la región roja reemplazada por azul

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

Metarchivo de

Cambio de color