RGBからHSVへの変換計算式
色相を求める
- R・G・Bのうち、最も大きな値をMAX、最も小さな値をMINとして
- Rが最大値の場合色の相 H = 60 × ((G - B) ÷ (MAX - MIN))
- Gが最大値の場合色の相 H = 60 × ((B - R) ÷ (MAX - MIN)) +120
- Bが最大値の場合色の相 H = 60 × ((R - G) ÷ (MAX - MIN)) +240
- R・G・Bが同じ値の場合の色相 H = 0
彩度を求める
- R・G・Bのうち、最も大きな値をMAX、最も小さな値をMINとして
- 彩度 S = (MAX - MIN) ÷ MAX
明度を求める
- R・G・Bのうち、最も大きな値をMAXとして
- 明度 V = MAX
HSVからRGBへの変換計算式
最大値と最小値を求める
- RGBからHSVへの変換式を逆算することで、
HSVの値からRGBの最大値と最小値を求める式を導くことができます。 - S・Vの範囲が0~255の場合の場合は下記のとおりです。
- 最大値 MAX = V
- 最小値 MIN = MAX - ((S ÷ 255) × MAX)
RGB値を求める
色相はRGBの最大値・最小値を使って求めているため、
逆算することでどの色が最大値・最小値になるかがわかります。
残った色も変換式の逆算で求めます。
Hの範囲が0~360、S・Vの範囲が0~255の場合は下記のとおりです。
- Hが0~60の場合
R = MAX
G = (H ÷ 60) × (MAX - MIN) + MIN
B = MIN
- Hが60~120の場合
R = ((120 - H) ÷ 60) × (MAX - MIN) + MIN
G = MAX
B = MIN
- Hが120~180の場合
R = MIN
G = MAX
B = ((H - 120) ÷ 60) × (MAX - MIN) + MIN
- Hが180~240の場合
R = MIN
G = ((240 - H) ÷ 60) × (MAX - MIN) + MIN
B = MAX
- Hが240~300の場合
R = ((H - 240) ÷ 60) × (MAX - MIN) + MIN
G = MIN
B = MAX
- Hが300~360の場合
R = MAX
G = MIN
B = ((360 - H) ÷ 60) × (MAX - MIN) + MIN
RGBからCMYKへの変換計算式
- K = 1 - MAX(R・G・Bのうち、最も大きな値をMAXとして)
- C = (1-R-K) ÷ (1- k)
- M = (1-G-K) ÷ (1- k)
- Y = (1-B-K) ÷ (1- k)
CMYKからRGBへの変換計算式
- R = 255 × (1 - C) × (1-K)
- G = 255 × (1 - M) × (1-K)
- B = 255 × (1 - Y) × (1-K)
|