HLS色空間

提供: testwiki
2023年7月16日 (日) 08:46時点におけるimported>Nmmktrによる版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

テンプレート:出典の明記 HLS色空間(エイチエルエスいろくうかん)とは、色相 (Hue)、彩度 (Saturation)、輝度(Lightness / Luminance または Intensity)の3つの成分からなる色空間HSV色空間によく似ている。 HSL、HSIと呼ばれることもある。

HLS色空間のカラーモデル
色相
色味を0から360度の範囲の角度で表す。0度は赤で、その反対側に位置する180度は赤の反対色にあたる青緑。すなわち、反対色を見つけるのも容易。色相についてはHSVと同じ。
彩度
HSVとは違い、純色から彩度が落ちるということは、すなわち灰色になっていくという考え方に基づいている。
輝度
明度100%を純色としてそこからどれだけ明るさが失われるかで表すHSVとは違い、輝度0テンプレート:Nbsp%を黒、100テンプレート:Nbsp%を白とし、その中間 (50テンプレート:Nbsp%) を純色とする。50テンプレート:Nbsp%以下はHSVの明度を示し、50テンプレート:Nbsp%以上はHSVの彩度を示すと考えると分かりやすいだろう。

HLS色空間を使う代表的なアプリケーションとしては、Microsoft Windows(ペイントを含む)、CSS3Paint Shop ProInkscape など。

RGBからHLS (HSL) への変換

H={undefined,if MIN=MAX60×GRMAXMIN+60,if MIN=B60×BGMAXMIN+180,if MIN=R60×RBMAXMIN+300,if MIN=GL=MAX+MIN2

双円錐モデル
S=MAXMIN
円柱モデル
S=MAXMIN1|MAX+MIN1|

双円錐モデルと円柱モデルがあり、彩度の定義が異なるため、注意が必要である。

RGBへの変換

RGBへ変換する際には、いったん最大値や最小を求める必要がある。

HSLの円柱モデルからの変換
Max=L+S×(1|2×L1|)2
Min=LS×(1|2×L1|)2
HSLの円錐モデルからの変換
Max=L+S2
Min=LS2

求めた最大値と最小値を、色相で場合分けした上で、RGBの各チャンネルに代入する。

(R,G,B)={(Max=Min,Max=Min,Max=Min)if H is undefined(Max,Min+(MaxMin)×H60,Min)if 0H<60(Min+(MaxMin)×120H60,Max,Min)if 60H<120(Min,Max,Min+(MaxMin)×H12060)if 120H<180(Min,Min+(MaxMin)×240H60,Max)if 180H<240(Min+(MaxMin)×H24060,Min,Max)if 240H<300(Max,Min,Min+(MaxMin)×360H60)if 300H<360

色相が定義されない場合は、彩度=0であり、全てのチャンネルが明度や輝度に等しくなる(最大値=最小値)。

テンプレート:色彩

テンプレート:Color-stub