Compartir a través de


Función SHGetInverseCMAP (shlwapi.h)

[Esta función está disponible a través de Windows XP y Windows Server 2003. Es posible que se modifique o no esté disponible en versiones posteriores de Windows.

Recupera la asignación inversa de la tabla de colores para la paleta de medio tono.

Sintaxis

LWSTDAPI SHGetInverseCMAP(
  [out] BYTE  *pbMap,
  [in]  ULONG cbMap
);

Parámetros

[out] pbMap

Tipo: BYTE*

Puntero a una matriz de BYTEque recibe la asignación inversa de la tabla de colores, o un puntero a un LPBYTE que recibe un puntero a una copia almacenada en caché de la asignación de tabla de colores inversa, dependiendo del valor del parámetro cbMap .

[in] cbMap

Tipo: ULONG

Tamaño del búfer al que apunta pbMap, que también define su contenido. Se reconocen dos valores.

(sizeof(BYTE*))

El búfer al que apunta pbMap recibe un puntero a una copia almacenada en caché de la tabla de mapa de colores inversa.

(32768)

El búfer al que apunta pbMap recibe una copia de la tabla de mapa de colores inversa. El búfer debe tener exactamente 32 768 bytes de tamaño.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

La tabla de asignación de colores inversa es una tabla de 32 768 bytes. Contiene los índices de colores de la paleta de media tono. Cada índice se almacena en una posición del búfer que corresponde a un valor RGB determinado expresado en formato 555. Estos emparejamientos permiten encontrar un color en la paleta de medio tono, que es una aproximación cercana del color original.

Por ejemplo, el método para determinar un color en la paleta de media tono que es una aproximación cercana para el color #306040 es el siguiente:

  1. Descompone el color en sus componentes rojo, verde y azul. En este caso, el componente rojo es 0x30, el componente verde es 0x60 y el componente azul está 0x40.
  2. Vuelva a ensamblar el color en formato 555. La fórmula para reducir un color RGB de 24 bits en formato 555 se muestra aquí.
    ((red / 8) << 10) + ((blue / 8) << 5) + (green / 8)
    

    En este ejemplo, el valor en formato 555 es ((0x30 / 8) 10) << + ((0x60 / 8) << 5) + (0x40 / 8) = 6536.

  3. El valor de índice almacenado en la posición 6536 de la tabla de mapa de colores inversa es el índice del color de la paleta de media tono que es una aproximación razonable al color #306040.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Library Shlwapi.lib
Archivo DLL Shlwapi.dll (versión 5.0 o posterior)

Consulte también

CreateHalftonePalette

GetNearestColor