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.
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 |