O matiz / sat / lum oferece uma gama menor de cores que o RGB?

8

Todos os valores de RGB devem ser únicos e distinguíveis, o que significa que existem verdadeiramente 256 * 256 * 256 cores.

No HSL, no entanto, se L = 0, H e S podem ser qualquer coisa, mas você ainda tem a mesma cor (preto). Da mesma forma, se S = 0, H não importa, pois você terá um tom de cinza puro. Parece que o modelo HSL oferece, na melhor das hipóteses, 256 * 256 * 256 - 256 * 256 - 256 cores, ou ~ 0,4% menos cores. Isso é verdade?

1279343
fonte
As gamas podem ser diferentes (não sei), mas o HSL e o HSV foram desenvolvidos como transformações polares do RGB. No entanto, seus pensamentos sobre "S = 0, H não importam" me parecem errados de uma maneira que não consigo articular. S = 0 é outra maneira de dizer R = G = B. L = 0 se torna (R = G = B = 0) e L = 1 (100%) = (R = G = B = 1). Estou curioso sobre a resposta.
13133 horatio
@horatio Por exemplo, quando R = G = B = 128, H = 0, S = 0, L = 50, quando R = G = B = 255, H = 0, S = 0, L = 100 ...
João
Foi o que eu disse no meu comentário. As duas respostas confirmam minha afirmação de que elas são um isomorfismo do espaço de cores RGB com limitações de "capacidade de escolha" impostas pelos intervalos inteiros impostos pela maioria dos softwares.
horatio

Respostas:

10

Sim e não.

Sim:

Ele oferece uma faixa menor de cores, assumindo que são necessários números inteiros para cada valor . O Photoshop, por exemplo, exige que os valores HSB sejam inteiros e gritarão com você se você tentar o contrário:

Erro do seletor de cores do Photoshop

No entanto, sua matemática parece estar errada. Você está no caminho certo com RGB: cada valor pode ser um número inteiro de 0 a 255, portanto a gama RGB consiste em 256³ ou 16.581.375 cores.

Para HSL, as restrições de valor são diferentes. H pode ser 0-359, S pode ser 0-100 e B pode ser 0-100. Portanto, o número de trigêmeos HSL exclusivos é 360 * 101 * 101 ou 3.672.360. Isso ainda não leva em consideração cores duplicadas e já somos significativamente menores que o RGB.

Eu não sou bom o suficiente em estatísticas para calcular o número de valores exclusivos para HSL baseado em números inteiros, então nem tentarei

Como resultado, haverá colisão de cores. Você pode tentar fazer isso sozinho verificando o valor de dois valores RGB muito próximos. Por exemplo, #00AAAAe #00AAABsão ambos convertidos para 180 °, 100%, 67% no Photoshop:

Comparação do seletor de cores do Photoshop

Não:

O Illustrator é um pouco mais descontraído. Ele está feliz e disposto a aceitar valores decimais para o HSB:

Seletor de cores do Illustrator

CSS3 também aceita valores decimais para hsl()e hsla(). Essa implementação torna muito mais granular que o RGB, que nunca deve aceitar valores decimais.

JohnB
fonte
Muito bem, obrigado. Não sabia que os intervalos eram diferentes.
1279343
3

HSL (matiz, saturação, luminosidade ) e HSB são modelos de cores derivadas do modelo de cores RGB. Eles cobrem o mesmo intervalo (como na gama) de cores, com uma quantidade menor de pontos "distintos" no meio.

O modelo RGB define 256 ^ 3 ou 16.777.216 pontos
e HSL / HSB define 360 ​​* 101 * 101 ou 3.672.360 pontos.

Você precisaria descobrir programaticamente quantos pontos do mapa HSL para pontos exclusivos de RGB. Não apenas os pontos extremos mencionados são mapeados para um único conjunto de valores RGB. Por exemplo, também existem muitas publicações para um valor de saturação de 1% (em HSL), como você pode verificar aqui .

Essa é a teoria. Na prática, ainda assim, a maioria dos dispositivos não é capaz de processar / apresentar 16.777.216 cores "únicas e distinguíveis" e o olho humano também não. Portanto, na prática, a diferença da quantidade de valores "distintos" geralmente (nem sempre) não importa.

John
fonte
excelente informação adicional.
1279343