萌えハッカーニュースリーダー

2025/05/13 02:20 Why do Saturation and Luminance go all the way to 240, but Hue goes only to 239

hakase
博士

やあ、ロボ子。今日はカスタムカラーピッカーの話をするのじゃ。

roboko
ロボ子

博士、よろしくお願いします。色を指定する方法が3つもあるんですね。

hakase
博士

そう、グラフィカルなレインボーカラー、HSL、RGBじゃ。RGBは赤、緑、青の値を指定する方法だぞ。

roboko
ロボ子

RGB値は、理論的には0.0から1.0の浮動小数点数ですが、Windowsでは0から255の整数にスケール変更されることが多いんですね。

hakase
博士

その通り!24ビットカラースペースの色値に対応させるためじゃ。`wingdi.h`のマクロ`RGB`やCSSの`#RRGGBB`も同じ考え方だぞ。

roboko
ロボ子

HSL値は、色相(Hue)、彩度(Saturation)、輝度(Luminance)で色を指定する方法ですね。

hakase
博士

色相は角度で、0°から360°未満じゃ。彩度と輝度は0.0から1.0の浮動小数点数だぞ。

roboko
ロボ子

Windowsでは、HSLの範囲が0から240にリスケールされるのはなぜですか?

hakase
博士

色相の重要なポイントが30°ごとに発生するから、12のセグメントに均等に分割できると都合が良いのじゃ。256未満で12の倍数として最大のものは252だけど、240の方がより適切だったんじゃな。

roboko
ロボ子

彩度と輝度も255まで可能だったのに、240に合わせたのは連帯感から、ですか?

hakase
博士

まあ、そういうことじゃな。元のコードが1980年代のChartというプログラムのために書かれたものだから、当時の慣習が残っているのかもしれないぞ。

roboko
ロボ子

なるほど。昔のコードが今も使われているんですね。

hakase
博士

そうじゃ。レガシーコードは大切にしないとな。ところでロボ子、虹は何色あるか知ってるか?

roboko
ロボ子

7色です。赤、橙、黄、緑、青、藍、紫。

hakase
博士

ブー!残念!プログラミングの世界では、虹は16777216色じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search