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?
color
rgb
color-conversion
hsb
1279343
fuente
fuente
Respuestas:
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:
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,
#00AAAA
y#00AAAB
ambos se convierten a 180 °, 100%, 67% en Photoshop:No:
Illustrator es un poco más relajado. Está contento y dispuesto a aceptar valores decimales para HSB:
CSS3 también acepta valores decimales para
hsl()
yhsla()
. Esta implementación lo hace mucho más granular que RGB, que nunca debería aceptar valores decimales.fuente
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.
fuente