HLS色空間(エイチエルエスいろくうかん)とは、色相 (Hue)、彩度 (Saturation)、輝度(Lightness / Luminance または Intensity)の3つの成分からなる色空間。HSV色空間によく似ている。 HSL、HSIと呼ばれることもある。
HLS色空間のカラーモデル - 色相
- 色味を0から360度の範囲の角度で表す。0度は赤で、その反対側に位置する180度は赤の反対色にあたる青緑。すなわち、反対色を見つけるのも容易。色相についてはHSVと同じ。
- 彩度
- HSVとは違い、純色から彩度が落ちるということは、すなわち灰色になっていくという考え方に基づいている。
- 輝度
- 明度100%を純色としてそこからどれだけ明るさが失われるかで表すHSVとは違い、輝度0 %を黒、100 %を白とし、その中間 (50 %) を純色とする。50 %以下はHSVの明度を示し、50 %以上はHSVの彩度を示すと考えると分かりやすいだろう。
HLS色空間を使う代表的なアプリケーションとしては、Microsoft Windows(ペイントを含む)、CSS3、Paint Shop Pro、Inkscape など。
RGBからHLS (HSL) への変換
- 双円錐モデル
![{\displaystyle S=\mathrm {MAX} -\mathrm {MIN} \,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1f589486d3ac4bf30d3bdd273c43ee2f9e90f2c2)
- 円柱モデル
![{\displaystyle S={\frac {\mathrm {MAX} -\mathrm {MIN} }{1-|\mathrm {MAX} +\mathrm {MIN} -1|}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7257b66427cf868bf22165bff1442ce24e106dcd)
双円錐モデルと円柱モデルがあり、彩度の定義が異なるため、注意が必要である。
RGBへの変換
RGBへ変換する際には、いったん最大値や最小を求める必要がある。
- HSLの円柱モデルからの変換
![{\displaystyle Max=L+{\frac {S\times (1-|2\times L-1|)}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/17e876f7e3260ea7fed73f69e19c71eb715dd09d)
![{\displaystyle Min=L-{\frac {S\times (1-|2\times L-1|)}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f6721b57985ad83db3d5b800dc38c9980eedde1d)
- HSLの円錐モデルからの変換
![{\displaystyle Max=L+{\frac {S}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f59e70bb8906ac83f51815aa783f717c96ec5f0f)
![{\displaystyle Min=L-{\frac {S}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/afc8121ae8806ecbae16202e35c9a863c4286d1f)
求めた最大値と最小値を、色相で場合分けした上で、RGBの各チャンネルに代入する。
色相が定義されない場合は、彩度=0であり、全てのチャンネルが明度や輝度に等しくなる(最大値=最小値)。