RGBのすべての値は一意で区別可能である必要があります。つまり、本当に256 * 256 * 256色があるということです。
ただし、HSLでは、L = 0の場合、HとSは何でもかまいませんが、同じ色(黒)になります。同様に、S = 0の場合、純粋な灰色の色合いが得られるため、Hは重要ではありません。したがって、HSLモデルは最大256 * 256 * 256-256 * 256-256色、または色を約0.4%少なくするようです。これは本当ですか?
RGBのすべての値は一意で区別可能である必要があります。つまり、本当に256 * 256 * 256色があるということです。
ただし、HSLでは、L = 0の場合、HとSは何でもかまいませんが、同じ色(黒)になります。同様に、S = 0の場合、純粋な灰色の色合いが得られるため、Hは重要ではありません。したがって、HSLモデルは最大256 * 256 * 256-256 * 256-256色、または色を約0.4%少なくするようです。これは本当ですか?
回答:
はいといいえ。
各値に整数が必要であると想定して、より狭い範囲の色を提供します。たとえば、PhotoshopではHSB値が整数である必要があり、それ以外の場合は次のように怒鳴ります。
しかし、あなたの数学はオフになっているようです。あなたはRGBで正しい軌道に乗っています。各値は0〜255の整数にできるため、RGBの色域は256 consistsまたは16,581,375色で構成されます。
HSLの場合、値の制約は異なります。Hは0〜359、Sは0〜100、Bは0〜100です。したがって、一意のHSLトリプレットの数は360 * 101 * 101、つまり3,672,360です。これはまだ重複色を考慮しておらず、RGBよりもかなり小さくなっています。
整数ベースのHSLの一意の値の数を計算するのに十分な統計が得られないので、試しません
その結果、色の衝突が発生します。2つの非常に近いRGB値の値を確認することで、これを自分で試すことができます。例えば、#00AAAA
そして#00AAAB
両方180°、100%、Photoshopで67%に変換されます。
イラストレーターはもう少しのんびりしています。HSBの10進数値を受け入れて喜んでいる:
CSS3は、hsl()
およびの10進値も受け入れますhsla()
。この実装は、それが可能な方法小数点値を受け入れるべきではありませんRGB、よりも細かいです。
HSL(色相、彩度、明度)とHSBは、RGBカラーモデルの派生カラーモデルです。それらは、色域と同じ範囲(色域内)をカバーし、その間にある「特徴的な」ポイントの量が少なくなります。
RGBモデルは256 ^ 3または16,777,216ポイント
を定義し、HSL / HSBは360 * 101 * 101または3,672,360ポイントを定義します。
HSLマップからRGBの一意のポイントまでのポイント数をプログラムで調べる必要があります。あなたが言及する極端な点だけがRGB値の単一のセットにマッピングされるだけではありません。たとえば、こちらで確認できるように、彩度値が1%(HSLの場合)の多くの重複があります。
それが理論です。実際には、ほとんどのデバイスは16.777.216の「一意で識別可能な」色を処理/表示できず、人間の目も処理できません。したがって、実際には、「特徴的な」値の量の違いは、多くの場合(常にではありません)は重要ではありません。