¿Hue / sat / lum ofrece una gama de colores más pequeña que RGB?

8

Todos los valores de RGB deben ser únicos y distinguibles, lo que significa que realmente hay 256 * 256 * 256 colores.

Sin embargo, en HSL, si L = 0, entonces H y S pueden ser cualquier cosa, pero aún se obtiene el mismo color (negro). Del mismo modo, si S = 0, entonces H no importa, ya que obtendrá un tono de gris puro. Por lo tanto, parece que el modelo HSL ofrece en el mejor de los casos 256 * 256 * 256 - 256 * 256 - 256 colores, o ~ 0.4% menos colores. ¿Es esto cierto?

1279343
fuente
Las gamas pueden ser diferentes (no lo sé), pero HSL y HSV se desarrollaron como transformaciones polares de RGB. Sin embargo, sus pensamientos sobre "S = 0, H no importa" me parecen erróneos de una manera que no puedo expresar. S = 0 es otra forma de decir R = G = B. L = 0 se convierte en (R = G = B = 0), y L = 1 (100%) = (R = G = B = 1). Tengo curiosidad por la respuesta.
Horacio
@horatio Por ejemplo, cuando R = G = B = 128, H = 0, S = 0, L = 50, cuando R = G = B = 255, H = 0, S = 0, L = 100 ...
John
Eso es más o menos lo que dije en mi comentario. Las dos respuestas confirman mi afirmación de que son un isomorfismo del espacio de color RGB con limitaciones en la "capacidad de elección" impuestas por los rangos de números enteros impuestos por la mayoría del software.
horatio

Respuestas:

10

Si y no.

Si:

Ofrece una gama más pequeña de colores, suponiendo que se requieren enteros para cada valor . Photoshop, por ejemplo, requiere que los valores de HSB sean enteros y le gritará si intenta lo contrario:

Error de selector de color de Photoshop

Sin embargo, tus matemáticas parecen estar apagadas. Está en el camino correcto con RGB: cada valor puede ser un número entero de 0-255, por lo que la gama RGB consta de 256³ o 16,581,375 colores.

Para HSL, las restricciones de valor son diferentes. H puede ser 0-359, S puede ser 0-100 y B puede ser 0-100. Entonces, el número de tripletes HSL únicos es 360 * 101 * 101, o 3,672,360. Esto aún no tiene en cuenta los colores duplicados y ya somos significativamente más pequeños que RGB.

No soy lo suficientemente bueno en estadísticas para calcular el número de valores únicos para HSL basado en enteros, por lo que ni siquiera intentaré

Como resultado, habrá una colisión de color. Puede probarlo usted mismo comprobando el valor de dos valores RGB muy cercanos. Por ejemplo, #00AAAAy #00AAABambos se convierten a 180 °, 100%, 67% en Photoshop:

Comparación del selector de color de Photoshop

No:

Illustrator es un poco más relajado. Está contento y dispuesto a aceptar valores decimales para HSB:

Selector de color de Illustrator

CSS3 también acepta valores decimales para hsl()y hsla(). Esta implementación lo hace mucho más granular que RGB, que nunca debería aceptar valores decimales.

JohnB
fuente
Muy bien puesto, gracias. No me di cuenta de que los rangos eran diferentes.
1279343
3

HSL (tono, saturación, luminosidad ) y HSB son modelos de color derivados del modelo de color RGB. Cubren el mismo rango (como en la gama) de colores con una menor cantidad de puntos "distintivos" en el medio.

El modelo RGB define 256 ^ 3 o 16,777,216 puntos
y HSL / HSB define 360 ​​* 101 * 101 o 3,672,360 puntos.

Tendría que averiguar mediante programación cuántos puntos del mapa HSL a puntos únicos de RGB. No solo los puntos extremos que mencionas se asignan a un solo conjunto de valores RGB. Por ejemplo, también hay muchos duplicados para un valor de saturación del 1% (en HSL) como puede verificar aquí .

Esa es la teoria. En la práctica, la mayoría de los dispositivos aún no son capaces de procesar / presentar 16.777.216 colores "únicos y distinguibles" y el ojo humano tampoco. Entonces, en la práctica, la diferencia de la cantidad de valores "distintivos" a menudo (no siempre) no importa.

Juan
fuente
Excelente información adicional.
1279343