HLS
以下にHLSの返還式を載せます
定義と成り立ち
オストワルト表色系に基づいた双六角錐の表色系です。
HSLと基本的に同義ですが、HLSのL=lightness、HSLのL=luminanceと別のものと考えることもあるようです。
各成分の意味
H:色相(hue)
L:明度(lightness)
S:彩度(saturation)
各成分の範囲
H:[0..359 degrees](ただし赤が0degrees)
L:[0.0..1.0]
S:[0.0..1.0]
R:[0.0..1.0]
G:[0.0..1.0]
B:[0.0..1.0]
返還式
RGB => HLS
MAX = max(R,G,B);
MIN = min(R,G,B);
L = (MAX + MIN)/2;
MAX == MINの場合
S = 0
H = 0
MAX = MIN以外の場合
L <= 0.5 : S = (MAX - MIN )/(MAX + MIN)
L > 0.5 : S = (MAX - MIN )/(2 -MAX - MIN)
Cr = (MAX - R) / (MAX - MIN);
Cg = (MAX - G) / (MAX - MIN);
Cb = (MAX - B) / (MAX - MIN);
R == MAX : H = Cb -Cg;
G == MAX : H = 2 + Cr -Cb;
B == MAX : H = 4 + Cg -Cr;
H = 60 x H
H < 0
H = H + 360
HLS => RGB
MAX = L * (1 +S) L <= 0.5
MAX = L * (1 - S) + S L > 0.5
MIN = 2 * L -MAX
S == 0の場合
R = G = B = L
S == 0以外の場合
h = H + 120
h >= 360 : h = h - 360
0 <= h < 60 : R = MIN + (MAX - MIN ) * h/60
60 <= h < 180 : R = MAX
180 <= h < 240 : R = MIN + (MAX - MIN ) * (240 - h)/60
240 <= h < 360 : R = MIN
h = H
0 <= h < 60 : G = MIN + (MAX - MIN ) * h/60
60 <= h < 180 : G = MAX
180 <= h < 240 : G = MIN + (MAX - MIN ) * (240 - h)/60
240 <= h < 360 : G = MIN
h = H - 120
h < 0 : h = h + 360
0 <= h < 60 : B = MIN + (MAX - MIN ) * h/60
60 <= h < 180 : B = MAX
180 <= h < 240 : B = MIN + (MAX - MIN ) * (240 - h)/60
240 <= h < 360 : B = MIN