色の変換(カラーコード・RGB・HSV・HSL) / ツール

ツール

RGB・カラーコード
赤 (R)
緑 (G)
青 (B)
プレビュー
背景色:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
HSV
色相 (H)
彩度 (S)
明度 (V)
HSL
色相 (H)
彩度 (S)
輝度 (L)

使い方

色空間を相互変換するWebツールです。カラーコード(16進数のRGB)、RGB(10進数)、HSV、HSLに対応しています。

  • カラーコード、RGB、HSV、HSLのいずれかを入力すると自動変換します。
  • カラーコードは3桁の省略形でも入力できます。
    例)#3F9 → #33FF99

※RGBとHSV/HSLの変換は不可逆です。これはRGBとHSV/HSLでは表現できる色の数が異なり、変換時に端数の丸めが発生するためです。
RGB: 256 × 256 × 256 = 16,777,216通り
HSV: 360 x 101 x 101 = 3,672,360通り

RGBとカラーコード(16進数)の変換計算式

RGBは一般的に各色を0から255までの256段階(= 8ビット分)で表現します。そのため16進数と相性が良く、ソフトウェア上ではよく16進数で表現されます。

16進数の場合は最初に#を付け、赤・緑・青の順に00~FFの16進数2桁ずつ計6桁で色を表現します。RGBであることに変わりはないですが、特にこの形式を指してカラーコードと呼ばれたりします。

#FF9933 = rgb(255, 153, 51)

また、CSSなどでは16進数カラーコードを3桁の省略形で指定できます。

#FF9933 = #F93

各色2桁ずつの計6桁を各色1桁ずつの計3桁に省略したもので、各桁を2回くり返す場合にのみ使用できます。

RGBからHSVへの変換計算式

R, G, Bのうち最大値をMAX、最小値をMINとします。

① HSVの色相(H)を求める。MAXがR, G, Bのどれかによって求め方が変わる。

Rの場合:H=GBMAXMIN×60H = {\dfrac {G-B}{MAX-MIN}} \times 60

Gの場合:H=BRMAXMIN×60+120H = {\dfrac {B-R}{MAX-MIN}} \times 60+120

Bの場合:H=RGMAXMIN×60+240H = {\dfrac {R-G}{MAX-MIN}} \times 60+240

② HSVの彩度(S)を求める。

S=MAXMINMAX×100S={\dfrac {MAX-MIN}{MAX}} \times 100

③ HSVの明度(V)を求める。

S=MAX255×100S={\dfrac {MAX}{255}} \times 100

RGBからHSLへの変換計算式

R, G, Bのうち最大値をMAX、最小値をMINとします。

① HSLの色相(H)を求める。

HSVと同じ。

② HSLの輝度(L)を求める。

L=MAX+MIN2×100255L={\dfrac {MAX+MIN}{2}} \times {\dfrac {100}{255}}

③ HSLの彩度(S)を求める。輝度によって求め方が変わる。

0L500 \leqq L \leqq 50の場合:

S=MAXMINMAX+MIN×100S = {\dfrac {MAX-MIN}{MAX+MIN}} \times 100

51L10051 \leqq L \leqq 100の場合:

S=MAXMIN510(MAX+MIN)×100S = {\dfrac {MAX-MIN}{510-(MAX+MIN)}} \times 100

HSVからRGBへの変換計算式

① HSVのH(色相)を変換する。

Hは360の場合0とし、H ÷ 60を1で割った余り(=小数部)を求める。

H=H60mod1H'={\dfrac {H}{60}} \bmod 1

例)Hが90の場合:9060mod1=1.5mod1=0.5{\dfrac {90}{60}} \bmod 1=1.5 \bmod 1=0.5

② HSVのS(彩度)とV(明度)を変換する。

SとVは百分率から小数に変換しておく。

S=S100S'={\dfrac {S}{100}} V=V100V'={\dfrac {V}{100}}

③ HSVのHの値に応じてRGBを決定する。

無彩色(S = 0)を例外とし、Hの値に応じてR, G, Bの解を決定。

A=V×255A=V' \times 255
B=V×(1S)×255B=V' \times (1-S') \times 255
C=V×(1S×H)×255C=V' \times (1-S' \times H') \times 255
D=V×(1S×(1H))×255D=V' \times (1-S' \times (1-H')) \times 255

条件RGB
S=0S = 0AAA
0H<600 \leqq H < 60ADB
60H<12060 \leqq H < 120CAB
120H<180120 \leqq H < 180BAD
180H<240180 \leqq H < 240BCA
240H<300240 \leqq H < 300DBA
300H<360300 \leqq H < 360ABC

HSLからRGBへの変換計算式

① HSLのH(色相)を変換する。

H360H \neq 360の場合:H=HH = H
H=360H = 360の場合:H=0H = 0

② HSLのL(輝度)を変換する。

0L<500 \leqq L < 50の場合 :L=LL' = L
50L10050 \leqq L \leqq 100の場合:L=100LL' = 100-L

③ HSLのHの値に応じてRGBを決定する。

MAX=2.55×(L+L×S100)MAX=2.55 \times (L+L' \times {\dfrac {S}{100}}) MIN=2.55×(LL×S100)MIN=2.55 \times (L-L' \times {\dfrac {S}{100}}) f(x)=x60×(MAXMIN)+MINf(x)={\dfrac {x}{60}} \times (MAX-MIN)+MIN
条件RGB
0H<600 \leqq H < 60MAXff(H)MIN
60H<12060 \leqq H < 120ff(120 - H)MAXMIN
120H<180120 \leqq H < 180MINMAXff(H - 120)
180H<240180 \leqq H < 240MINff(240 - H)MAX
240H<300240 \leqq H < 300ff(H - 240)MINMAX
300H<360300 \leqq H < 360MAXMINff(360 - H)