2013-03-27 4 views
9

Ich mache eine Color-Klasse als Teil einer sehr einfachen Grafik-API in C++. Also entschied ich mich, Microsofts .NET-Framework anzuschauen und bemerkte, dass ihre Color-Klasse Funktionen für HSB hat.HSB vs HSL vs HSV

Dann begann ich eine Forschung zu bestimmen, ob ich HSB, HSL oder HSV oder alle von ihnen in meiner Klasse zur Verfügung stellen sollte.

Also, ich habe drei Fragen auf HSB, HSL, HSV:

  1. Ist HSB als HSL gleich?

  2. Wenn nicht, warum gibt es keine HSBL oder gar HSBLV?

  3. Ich finde viele verschiedene Methoden zur Berechnung dieser Werte, kann mir jemand die SCHNELLSTEN zeigen?

+4

HSV == HSB. HSL! = HSB. –

+0

Wikipedia und Google-Suche sind auch dein Freund: http://en.wikipedia.org/wiki/HSL_and_HSV –

+2

@ RichardJ.RossIII Ich konnte keinen vernünftigen Vergleich auf diesen finden. Deshalb habe ich das hier gepostet :) –

Antwort

20

Ist HSB gleiche wie HSL?

Nein, HSB ist dasselbe wie HSV, aber HSL ist anders. Alle diese werden als eine freundliche Art verwendet, um RGB-Farben darzustellen. Der Wikipedia-Artikel über HSL und HSV erklärt die Unterschiede mit Farbzylindern: HSL and HSV Grundsätzlich ist der Farbton für HSB und HSL derselbe, aber die Sättigung nimmt unterschiedliche Werte an und Helligkeit und Helligkeit sind auch unterschiedlich.

Wenn nicht, warum gibt es keine HSBL oder gar HSBLV?

Ich verstehe nicht den Punkt. Sowohl HSB/HSV als auch HSL können beliebige RGB-Farben darstellen. B und L unabhängig voneinander zu haben, ist wegen der Art ihrer Definition nicht möglich. Eine gegebene HSB-Helligkeit und Sättigung ist mit einer festen Helligkeit verbunden. Tatsächlich ist die Konvertierung zwischen ihnen sehr einfach.

Ich finde viele verschiedene Methoden zur Berechnung dieser Werte, kann mir jemand die SCHNELLSTEN zeigen?

Es gibt eine ähnliche Frage hier für HSB von RGB Berechnung: Fast, optimized and accurate RGB <-> HSB conversion code in C Es gibt eine Java-Implementierung gibt, die helfen könnten. Zur Konvertierung zwischen HSB/HSV und HSL siehe HSL vs HSB vs HSV

+2

Obwohl das eine sehr alte Frage ist, danke für die Antwort :) –

Verwandte Themen