50

C++ で非常に基本的なグラフィックス API の一部として Color クラスを作成しています。そこで、Microsoft の .NET フレームワークを調べてみることにしました。Microsoft の Color クラスに HSB 用の関数があることに気付きました。

次に、クラスで HSB、HSL、HSV、またはそれらすべてを提供する必要があるかどうかを判断するための調査を開始しました。

HSB、HSL、HSV について 3 つの質問があります。

  1. HSBはHSLと同じですか?

  2. そうでない場合、HSBL や HSBLV がないのはなぜですか?

  3. これらの値を計算するさまざまな方法を見つけましたが、最速のものを教えてもらえますか?

4

5 に答える 5

43

HSBはHSLと同じですか?

いいえ、HSB は HSV と同じですが、HSL は異なります。これらはすべて、RGB カラーを表すわかりやすい方法として使用されます。HSLとHSV に関するウィキペディアの記事では、カラー シリンダーを使用して違いが説明 されています。

そうでない場合、HSBL や HSBLV がないのはなぜですか?

意味がわかりません。HSB/HSV と HSL はどちらも任意の RGB カラーを表現できます。B と L を独立して定義することはできません。指定された HSB の明るさと彩度は、固定された明度に関連付けられています。実際、それらの間の変換は非常に簡単です。

これらの値を計算するさまざまな方法を見つけましたが、最速のものを教えてもらえますか?

RGB から HSB を計算するための同様の質問がここにあります:高速で最適化された正確な RGB <-> C での HSB 変換コード 役立つかもしれない Java 実装があります。HSB/HSV と HSL の間の変換については、HSL と HSBと HSV を参照してください。

于 2013-10-26T03:39:31.090 に答える