Modelos de cores usados pela caixa de diálogo de cor

A extensão de cores personalizadas da caixa de diálogo cor permite que o usuário especificar uma cor usando valores RGB ou HSL. No entanto, a estrutura CHOOSECOLOR usa apenas valores RGB para relatar as cores criadas ou selecionadas pelo usuário.

Modelo de cores RGB

O modelo RGB é usado para designar cores para monitores e outros dispositivos que emitem luz. Intervalo de valores válidos de vermelho, verde e azul de 0 a 255, com 0 indicando intensidade mínima e 255 que indica a intensidade máxima. A ilustração a seguir mostra como as cores primárias vermelhas, verdes e azuis podem ser combinadas para produzir quatro cores adicionais. (Para dispositivos de exibição, a cor preta resultados quando os valores de vermelhos, verdes e azuis são definidos como 0. Tecnologia de exibição, preta é a ausência de todas as cores.)

A seguir estão oito cores e seus associado valores RGB.

Cor Valores RGB
Vermelho 255, 0, 0
Verde 0, 255, 0
Azul 0, 0, 255
Ciano 0, 255, 255
Magenta 255, 0, 255
Amarelo 255, 255, 0
Branco 255, 255, 255
Preto 0, 0, 0

O sistema armazena as cores internas como valores RGB de 32 bits que têm o seguinte formato hexadecimal:

0x00bbggrr 

 

A baixa-ordem byte contém um valor para a intensidade relativa de vermelho; o segundo byte contém um valor de verde; e o terceiro byte contém um valor para azul. O alto byte ordem deve ser zero.

Você pode usar o RGB macro para obter um valor RGB com base na especificado intensidades dos componentes vermelho, verde e azul. Uso o GetRValue, GetBValue, e GetGValue macros para extrair cores individuais de uma RGB valor de cor.

Modelo de cor HSL

A caixa de diálogo de cor fornece controles para especificar valores HSL. A ilustração a seguir mostra o controle do espectro de cores e o controle deslizante de luminosidade que aparecem na caixa de diálogo cor . A ilustração também mostra os intervalos de valores que o usuário pode especificar com esses controles.

Na caixa de diálogo cor , os valores de saturação e luminosidade devem estar no intervalo de 0 a 240 e o valor de matiz deve estar no intervalo de 0 a 239.

Convertendo valores HSL em valores RGB

O procedimento de caixa de diálogo fornecido em COMDLG32.DLL para a caixa de diálogo de cor contém código que converte valores HSL para os correspondentes valores RGB. A seguir estão várias cores e seus associado valores HSL e RGB.

Cor Valores HSL Valores RGB
Vermelho (0, 240, 120) (255, 0, 0)
Amarelo (40, 240, 120) (255, 255, 0)
Verde (80, 240, 120) (0, 255, 0)
Ciano (120, 240, 120) (0, 255, 255)
Azul (160, 240, 120) (0, 0, 255)
Magenta (200, 240, 120) (255, 0, 255)
Branco (0, 0, 240) (255, 255, 255)
Preto (0, 0, 0) (0, 0, 0)