saturation color bright and c++ colors hsv hsl hsb

c++ - color - HSB vs HSL vs HSV



rgb to hsv algorithm (2)

¿Es HSB lo mismo que HSL?

No, HSB es lo mismo que HSV pero HSL es diferente. Todos estos se utilizan como una forma amigable para representar los colores RGB. El artículo de Wikipedia sobre HSL y HSV explica las diferencias con los cilindros de color: en.wikipedia.org/wiki/HSL_and_HSV Básicamente, el tono es el mismo para HSB y HSL, pero la saturación toma diferentes valores y el brillo y la luminosidad también son diferentes.

Si no es así, ¿por qué no hay un HSBL o incluso un HSBLV?

No entiendo el punto. Tanto HSB / HSV como HSL pueden representar cualquier color RGB. Tener B y L de forma independiente no es posible debido a la forma en que se definen. Un determinado brillo y saturación de HSB se asocia a una luminosidad fija. De hecho la conversión entre ellos es muy fácil.

Encuentro muchos métodos diferentes para calcular estos valores, ¿puede alguien mostrarme los MÁS RÁPIDOS?

Aquí hay una pregunta similar para calcular HSB a partir de RGB: Rápido, optimizado y preciso RGB <-> Código de conversión HSB en C Hay una implementación de Java que podría ayudar. Para la conversión entre HSB / HSV y HSL vea HSL vs HSB vs HSV

Estoy creando una clase de color como parte de una API de gráficos muy básica en c ++. Así que decidí echar un vistazo al marco .NET de Microsoft y noté que su clase de Color tiene funciones para HSB.

Luego comencé una investigación para determinar si debería proporcionar HSB, HSL o HSV o TODOS en mi clase.

Entonces, tengo 3 preguntas sobre HSB, HSL, HSV:

  1. ¿Es HSB lo mismo que HSL?

  2. Si no es así, ¿por qué no hay un HSBL o incluso un HSBLV?

  3. Encuentro muchos métodos diferentes para calcular estos valores, ¿puede alguien mostrarme los MÁS RÁPIDOS?


  1. HSB! = HSL && HSB == HSV
  2. HSBL || HSBLV == null // porque la luminosidad y el brillo (valor) son sustitutos
  3. Actualizo wiki y proporciono una conversión alternativa más simple: HSL2RGB y HSV2RGB