RGB・HEX・HSL を相互変換して色をプレビュー
#7C3AED → R=0x7C=124, G=0x3A=58, B=0xED=237。#7C3AED。rgb(124 58 237) や hsl(262 83% 58%) のように使えます。同じ色をRGB・HEX・HSLの3つの形式で相互に変換できるツールです。Webデザインのコード値を調べたり、色相や明るさを調整したいときに、形式をまたいで一目で対応関係を確認できます。
RGBとHEXは、同じ0〜255の値を10進数か16進数かで表記しているだけなので、表記変換のみで対応します。例えばR=255は16進数でFF、G=99は63、B=71は47となり、合わせて#FF6347です。逆にHEXを2桁ずつ区切って10進数に戻すとRGBになります。
HSLへの変換は、まず各成分を0〜1に正規化し(R=1, G=0.388, B=0.278)、最大値Max・最小値Minを求めます。明度はL=(Max+Min)/2。彩度SはMax=Minなら0、そうでなければL≦0.5のときS=(Max−Min)/(Max+Min)、L>0.5のときS=(Max−Min)/(2−Max−Min)で算出します。色相Hは最大値がどの成分かで式が分かれ、結果を6倍して60°を掛けると角度になります。先ほどのトマト色なら、おおよそH=9°, S=100%, L=64%です。
Q. HEXの3桁表記(#FFFや#F63)も使えますか?
A. 3桁表記は各桁を2回繰り返した6桁と同じ意味です。#F63は#FF6633を表します。入力時は6桁に展開して扱うと確実です。
Q. RGBとHSLを往復すると値が少しずれるのはなぜですか?
A. RGBは0〜255の整数、HSLは角度や百分率で表すため、変換時に小数の丸めが発生します。1〜2の差は丸め誤差で、見た目はほぼ変わりません。
Q. 透明度(アルファ)は変換できますか?
A. このツールは不透明な色(RGB/HEX/HSL)を対象としています。透明度を扱うRGBA・HSLAや#RRGGBBAAは、アルファ値を別途指定してください。
color:#FF6347 のように指定します。コピペでの受け渡しに向いています。