2013-03-27 20 views
9

Sto creando una classe Color come parte di un'API grafica di base in C++. Così ho deciso di dare un'occhiata al framework .NET di Microsoft e ho notato che la loro classe Color ha funzioni per HSB.HSB vs HSL vs HSV

Poi ho iniziato una ricerca per determinare se dovevo fornire HSB, HSL o HSV o TUTTI nella mia classe.

Così, ho 3 domande sul HSB, HSL, HSV:

  1. È HSB stesso di HSL?

  2. In caso contrario, perché non c'è un HSBL o addirittura HSBLV?

  3. Trovo molti metodi diversi per calcolare questi valori, qualcuno può mostrarmi quelli PIÙ VELOCI?

+4

HSV == HSB. HSL! = HSB. –

+0

Le ricerche di Wikipedia e Google sono anche tuoi amici: http://en.wikipedia.org/wiki/HSL_and_HSV –

+2

@ RichardJ.RossIII Non sono riuscito a trovare un confronto decente su questi. Ecco perché ho postato questo :) –

risposta

20

È HSB stesso di HSL?

No, HSB è uguale a HSV ma HSL è diverso. Tutti questi sono usati come un modo amichevole per rappresentare i colori RGB. L'articolo di Wikipedia su HSL e HSV spiega le differenze usando i cilindri di colore: HSL and HSV Fondamentalmente, la tonalità è la stessa per HSB e HSL ma la saturazione assume valori diversi e anche Luminosità e Luminosità sono diversi.

In caso contrario, perché non c'è un HSBL o addirittura HSBLV?

Non capisco il punto. Sia HSB/HSV che HSL possono rappresentare qualsiasi colore RGB. Avere B e L indipendentemente non è possibile a causa del modo in cui sono definiti. Un dato Luminosità e Saturazione HSB è associato a una Luminosità fissa. In realtà la conversione tra di loro è molto semplice.

Trovo molti metodi diversi per calcolare questi valori, qualcuno può mostrarmi quelli PIÙ VELOCI?

C'è una domanda simile qui per il calcolo dell'HSB da RGB: Fast, optimized and accurate RGB <-> HSB conversion code in C C'è un'implementazione Java che potrebbe aiutare. Per la conversione tra HSB/HSV e HSL vedere HSL vs HSB vs HSV

+2

Anche se questa è una domanda molto vecchia, grazie per la risposta :) –