网奇CMS - 成熟易用的.NET网站管理系统
旧版官网 | 客服论坛 | 彩虹服务 | 加入收藏 | TEL:400-600-2788

HSB怎么来计算色彩

  
  传统美术和设计学科,对色彩的描述,是基于孟塞尔色立体的,我们知道,孟氏色立体有三类“极色”,白色极、黑色极、纯色极。这样一来,色立体看起来就有点像飞碟。单个纯颜色,不管是往里面“掺入”黑色变暗还是“掺入”白色变淡都是属于“纯度”变化。


  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的叠加越多,明度就越大。

0 顶一下 打印 阅读:
界面制作中最有帮助的文章