1.基本概念
RGB模式对机器很友好,但是不符合人眼的直观感受,所以人们发明了HSL模式。
H是色相,代表颜色的红橙黄绿青蓝紫,主要取决于颜色的频率,但不完全取决于颜色的频率,如人眼不能区分纯的黄光和由红光绿光混合而成的黄光(这种就是常说的同色异谱)。
S是饱和度,代表颜色的鲜艳程度,饱和度越高,颜色越鲜艳,饱和度为0,颜色是灰色。
L是亮度,代表颜色的深浅程度,亮度越高颜色越浅,亮度越低颜色越深,黑色的充要条件是亮度为0,白色的充要条件是亮度为最大值。
2.RGB转化为HSL
公式如下:(max代表RGB的最大值,min代表RGB的最小值)
L大致代表了光的量。但是L并不是颜色深浅的绝对标志,红色(#FF0000)、蓝色(#0000FF)比L值相同的黄色(#FFFF00)、绿色(#00FF00)、青色(#00FFFF)更深,这是因为人眼对绿光比较敏感。
S可以大致理解为光的纯度,即max-min,更准确的说,S指的是在光的量不改变的条件下光的相对纯度,它受L的限制。max-min值小只能代表光的纯度低,并不代表颜色不鲜艳,因为min提高了对L也做了贡献。所以需要比上2L或2-2L。HSL模式的模型是双圆锥。
3.HSL转RGB
当 0 ≤ H < 360、0 ≤ S ≤ 1 和 0 ≤ L ≤ 1 时: