传统美术和设计学科,对色彩的描述,是基于孟塞尔色立体的,我们知道,孟氏色立体有三类“极色”,白色极、黑色极、纯色极。这样一来,色立体看起来就有点像飞碟。单个纯颜色,不管是往里面“掺入”黑色变暗还是“掺入”白色变淡都是属于“纯度”变化。
HSB,看起来是很直观的H(Hue)色相、S(Saturation)纯度、B(Brightness)明度。这里补充一个概念要引起大家注意:B(Brightness)明度,L(Lightness)亮度 (来自于Lab色彩模式)在色彩学里面是两个概念,计算方法也不同,请不要混淆。
要说明HSB怎么来计算色彩,要从HSB和RGB的关系来讲,下面的内容涉及到HSB和RGB的计算公式,或许有些枯燥,但是为了了解根本还是请耐心看下去,我也尽量用通俗的语言来描述他们:
因为RGB和HSB中都有个B,避免混淆,公式中用V来表示HSB的B。
读入值为RGB是0~1之间的小数,由0~255转换。
H = (0+(G-B)/(MAX-MIN))*60 ,IF R=MAX
H = (2+(B-R)/(MAX-MIN))*60 ,IF G=MAX
H = (4+(R-G)/(MAX-MIN))*60 ,IF B=MAX
S = MAX-MIN (Windows模式算法,圆锥色立体)
S = (MAX-MIN)/MAX (Adobe模式算法,圆柱色立体)
V = MAX
[attach]28577[/attach] [attach]28578[/attach]
我们来看看我们关心的S(纯度)的产生:纯度 = RGB三值中的最大值和最小值的差 和 最大值的比值
那么也就是说,这个差值越悬殊,色彩的纯度就越大。即使是████ R0 G255 B180 (H 162 S 100 B 100)这样高亮颜色,或者是 ████ R0 G23 B16 (H 162 S 100 B 9)这样的很暗黑的颜色,纯度也是一样高。
再来看看B(明度)的产生:明度 = RGB三值中的最大值
也就是说,明度是由最大值的原色所决定的,和颜色的混合无关,并不是我们想像中的RGB的叠加越多,明度就越大。