Share via


Função SHGetInverseCMAP (shlwapi.h)

[Essa função está disponível por meio do Windows XP e do Windows Server 2003. Ele pode estar alterado ou indisponível em versões subsequentes do Windows.]

Recupera o mapeamento de tabela de cores inversa para a paleta de meio tom.

Sintaxe

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

Parâmetros

[out] pbMap

Tipo: BYTE*

Um ponteiro para uma matriz de BYTEs que recebe o mapeamento de tabela de cores inversa ou um ponteiro para um LPBYTE que recebe um ponteiro para uma cópia armazenada em cache do mapeamento de tabela de cores inversa, dependendo do valor do parâmetro cbMap .

[in] cbMap

Tipo: ULONG

O tamanho do buffer apontado por pbMap, que também define seu conteúdo. Dois valores são reconhecidos.

(sizeof(BYTE*))

O buffer apontado por pbMap recebe um ponteiro para uma cópia armazenada em cache da tabela de mapa de cores inversa.

(32768)

O buffer apontado por pbMap recebe uma cópia da tabela de mapa de cores inversa. O buffer deve ter exatamente 32.768 bytes de tamanho.

Retornar valor

Tipo: HRESULT

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

A tabela de mapeamento de cores inversa é uma tabela de 32.768 bytes. Ele contém os índices de cores na paleta de meio tom. Cada índice é armazenado em uma posição no buffer que corresponde a um valor RGB específico expresso no formato 555. Esses emparelhamentos permitem que você encontre uma cor na paleta de meio tom que é uma aproximação próxima da cor original.

Por exemplo, o método para determinar uma cor na paleta de meio tom que é uma aproximação próxima para a cor nº 306040 é o seguinte:

  1. Decompor a cor em seus componentes vermelho, verde e azul. Nesse caso, o componente vermelho é 0x30, o componente verde é 0x60 e o componente azul é 0x40.
  2. Remontar a cor no formato 555. A fórmula para reduzir uma cor RGB de 24 bits em formato 555 é mostrada aqui.
    ((red / 8) << 10) + ((blue / 8) << 5) + (green / 8)
    

    Neste exemplo, o valor no formato 555 é ((0x30 / 8) << 10) + ((0x60 / 8) << 5) + (0x40 /8) = 6536.

  3. O valor de índice armazenado na posição 6536 na tabela de mapa de cores inversa é o índice da cor na paleta de meio tom que é uma aproximação razoável à cor nº 306040.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlwapi.h
Biblioteca Shlwapi.lib
DLL Shlwapi.dll (versão 5.0 ou posterior)

Confira também

CreateHalftonePalette

GetNearestColor