web-dev-qa-db-fra.com

HSB vs HSL vs HSV

Je crée une classe Color dans le cadre d’une API graphique très basique en c ++. J'ai donc décidé de jeter un coup d'œil au framework .NET de Microsoft et j'ai remarqué que leur classe Color avait des fonctions pour HSB.

Ensuite, j'ai commencé une recherche pour déterminer si je devais fournir HSB, HSL ou HSV ou TOUS ces éléments dans ma classe.

Donc, j'ai 3 questions sur HSB, HSL, HSV:

  1. HSB est-il identique à HSL?

  2. Sinon, pourquoi n'y a-t-il pas de HSBL ou même de HSBLV?

  3. Je trouve différentes méthodes de calcul de ces valeurs. Quelqu'un peut-il me montrer les PLUS RAPIDES?

22

HSB est-il identique à HSL?

Non, HSB est identique au HSV mais HSL est différent. Tous ces éléments sont utilisés comme moyen convivial de représenter les couleurs RVB. L'article de Wikipedia sur HSL et HSV explique les différences à l'aide de cylindres de couleur: HSL et HSV En gros, Hue est identique pour HSB et HSL, mais Saturation prend des valeurs différentes et Luminosité et Luminosité également.

Sinon, pourquoi n'y a-t-il pas de HSBL ou même de HSBLV?

Je ne comprends pas le point. HSB/HSV et HSL peuvent représenter toutes les couleurs RVB. Avoir B et L indépendamment n'est pas possible à cause de la façon dont ils sont définis. Une luminosité et une saturation HSB données sont associées à une luminosité fixe. En fait, la conversion entre eux est très facile.

Je trouve différentes méthodes de calcul de ces valeurs. Quelqu'un peut-il me montrer les PLUS RAPIDES?

Il existe une question similaire ici pour calculer la HSB à partir de RGB: Code de conversion RGB <-> HSB rapide, optimisé et précis en C Il existe une implémentation Java qui pourrait aider. Pour la conversion entre HSB/HSV et HSL, voir HSL vs HSB vs HSV

33
JoseV
  1. HSB! = HSL && HSB == HSV
  2. HSBL || HSBLV == null // car la luminosité et la luminosité (valeur) sont des substituts
  3. J'ai mis à jour le wiki et fourni une conversion alternative plus simple: HSL2RGB et HSV2RGB
0
Kamil Kiełczewski