qakcn
学生会会长
学生会会长
  • 注册日期2008-10-31
  • 最后登录2021-01-05
  • 生日1988-8-18
  • 光玉3394颗
阅读:1832回复:21

科普第1篇——计算机的色彩

楼主#
更多 发布于:2010-09-08 13:44
这篇文章的主要内容
1、色彩的本质
2、三原色及其原理
3、常见的色彩表示

色彩是什么?
小学都学过,白光可以被分解为彩色的光。色彩本质上就是不同波长的光。如红色波长大约是630~750纳米,蓝色大约是450~480纳米。可见光就是各种不同色彩的光,其中人们最容易识别的是七种:红橙黄绿蓝靛紫(或:红橙黄绿青蓝紫)。
[图1 不同波长的可见光组成一条连续的光谱]
 [附件]
物体的颜色,是由于物体发出或者反射某种或某几种波长的光。
白色并不是一种颜色,就像上面说的,白色是由多种颜色的光复合而成的。而研究表明,最少只要两种色彩的光复合就可以产生白色,这些成对的色彩就叫做互补色。
[图2 不同颜色的可见光波长及其互补色]
 [附件]
学过作图的对互补色一定不陌生,HSV取色用的色轮中,相对的颜色就是互补色。
[图3 色环]
 [附件]
人们对色彩的区别不光是波长,还有亮度也会影响人的视觉感受,这在计算机上被称为灰阶。如灰色系最亮的是白色,最暗的是黑色。

美术课上都学过“三原色”,也就是红黄蓝,这其实是消减型三原色。其原理和颜料的特性有关。因为颜料反射光不是某个波长,而是一个波长范围。当两种颜料混合时,各自主要反射的波长被对方吸收,这时共同反射的波长就变得明显了,从而产生了别的颜色。
其实在印刷上并不用红黄蓝的三原色,而是使用青(Cyan)、品红(Magenta,也有称为洋红)、黄(Yellow)作为三原色,由于三原色混合的黑色不纯,实际上是浊褐色,因此额外加入了黑色。这就是CMYK色彩空间(K代表black)。
[图3 CMYK色彩]
 [附件]
而计算机显示上常用的色彩空间是RGB,即红(Red)、绿(Green)、蓝(Blue),被称为“叠加型三原色”。这又是什么原理呢?
[图4 RGB色彩]
 [附件]
其实红光和绿光再怎么混合,也不可能产生波长完全不同的黄光。这其实是与人的视觉有关的。
人的视网膜上有三种细胞(视锥细胞),不同波长的光对不同细胞的刺激不同,经过大脑的分析之后产生色彩的感觉。而红光和绿光共同产生的刺激,与黄光单独产生的刺激一样,因此大脑将红光与绿光的混合光识别为黄光。所以,如果人的视觉系统是完全不同另一种,那么三原色也就不是红绿蓝了。
RGB色彩中,红绿混合产生黄色、红蓝是品红、蓝绿是青色,看出什么了?对,就是CMYK的三原色。
说到RGB就不得不提sRGB色彩空间,这是微软和惠普提出的,并得到了广泛的支持。sRGB规定了红色、绿色、蓝色的最亮的灰阶的色彩,这样才能分出其他灰阶,也才能表示色彩。但是sRGB的表示的色彩范围不够大,甚至还没有印刷用的CMYK的能表示颜色多。学过作图的都应该知道另一种色彩空间:Adobe RGB,这是专业领域常用的。

那色彩怎么表示呢?
计算机使用二进制来表示数据的,色彩也不例外。二进制的位数被称为“位”(bit,也有称为“比特”),如101100就是六位数,即6bit。8bit就是1字节(Byte),比如一个32字节数据就是256位二进制数。
现在常见的都是24位色,红绿蓝每种色彩8位,表示从最亮到最暗的256级灰阶。其他颜色就是由不同灰阶的这三种色彩组合而成的。
因为二进制数不便于记忆,于是就用十进制或者十六进制数来表示。
网页标准的制定者W3C规定了一种十六进制的表示方式,如#FF0000,每两位表示一种颜色,红色是FF(最亮),绿色和蓝色都是00(最暗),这种颜色就是红色。#FFFFFF是白色,#000000是黑色。
因为人的色彩辨识能力有限,24位色的16,777,216种色彩已经远远超过人类所能识别的数量了,可以认为24位色就能表示一切色彩了,因此24位色又被称为“真彩色”。
有的地方看到32位色,这又是什么呢?多出来的8位其实是表示透明度的,称为Alpha通道,所以其实表示色彩的还是24位。
还有16位色,这是红蓝两种色彩有5位(32级灰阶),而由于人眼对绿色比较敏感,因此绿色有6位(64级灰阶)总共65,536种颜色,16位色又叫做“增强色”。也有的16位色是15位色(每种色彩5位)加上1位表示透明度的。
还有一种256色,256色图片(如GIF)都有一个“调色板”,其中有256种颜色,用8位二进制数来一一对应。每种颜色都可以是真彩色中的任一种,但是一幅图中最多只能有256种颜色。
除此之外还有4位色(又称为“16色”),2位色(4色),以及单色(黑白),由于不常见而且稍微想想都知道什么意思,所以就不介绍了。
喜欢0 评分0
游客

返回顶部