小时候看到书里说计算机不过是一台装满了0和1的机器,我总是不以为然:怎么可能,你看屏幕上那些五彩缤纷的颜色。长大后,当我成为了一名久经考验的无产 阶级计算机战士,我才深深地感受到,为什么计算机屏幕美如画,正是那0101染红了它。科学松鼠会专题写作组成立了,第一期的 主题是“色”,我们来思考这样一个问题:装满了0和1的计算机是怎么显示出各种颜色的。

在广大计算机的心目中,宇宙中的一切都是可以编号的,这是宇宙存在的基础。要让计算机能够表示颜色,首先就要给颜色编号。如果每种颜色用一位数字表 示,比如0表示黑,1表示白,这样就能表示2种颜色,可以画个太极图。如果每种颜色用两位数字表示,00=红,01=黄,10=蓝,11=绿,这样可以表 示4种颜色,可以画张不错的儿童画。如果用更多的位,那就能表示更多的颜色,因此,我们就用这个位数来描述颜色的丰富程度,比如说,8位色是256种不同 的颜色,16位是65536种,而24位是16,777,216种。

这么多颜色编码,就不能像4色8色那样乱点鸳鸯谱了,什么颜色对应几号,要有一定的规则才行。否则的话,编码倒是没问题,但在显示的时候就不方便 了。比如说,我们在画画的时候,只要有红黄蓝三原色,就能调出各种颜色来。现在请你调出“第100207号颜色”,如果这个号码是随便分配的,你就不知道 怎样调,但如果这个号码恰好表示“10份红色+2份黄色+7份蓝色”(10,02,07),那你马上就可以调出来。广大计算机纷纷表示,它们也需要这种可 以直接理解的编码方式,所以我们就参照上面的例子为颜色编码。对于计算机屏幕来说,显示颜色靠的是发光,而光的三基色是红、蓝、绿,所以要表示任何一种颜 色,只要知道红蓝绿三种光的强度分别是多少。

我们把一种光的强度分成256种等级,0表示不发光,255表示最高强度,那么用三个0~255的数字就能分别表示红、蓝、绿三色光的强度。比如 说,(0,0,0)表示红蓝绿都不发光,对应为黑色,而(255,255,255)就对应着白色,(100,100,100)是灰色,(255,0,0) 是纯红色,等等。0~255是十进制,我们把它转换成二进制,黑色就是000000000000000000000000,纯蓝色就是 000000001111111100000000。由于这些数字太长,计算机爽了,我们很不爽,于是有关部门决定在书写时使用16进制,黑色记作 000000,纯蓝色记作00FF00,这就是24位颜色的编码方法了。由于是用红(Red)、绿(Green)、蓝(Blue)三种光的强度来表示颜 色,所以这种编码称为RGB码。

现在颜色们有了自己的号码,计算机可以通过0和1来表示它们,下一步就是要根据号码来控制三色光的强度,把不同的颜色显示出来,这时,显示器立功 了。1888年,奥地利植物学家F. Renitzer发现了液晶这种物质有一个特殊的物理特性:液晶能使通过其中的光线发生扭转,而外电场的强度能够决定扭转的幅度。作为一位植物学家,Renitzer却因为发现了液晶而名垂于世。

对于一般的光线来说,扭转并不能改变强度,但是对于即将夹在两层彼此垂直的偏振片之间的光线来说,情况就不同了。

液晶显示器里面有一个发射白光的灯管,灯管发出的光线首先会通过垂直偏振片,转换成垂直方向的偏振光。不难想象,如果这束垂直的偏振光不经过扭转, 就会被前面的水平偏振片完全挡住,如果被扭转90度,就会完全通过水平偏振片。如果扭转30度、45度、60度呢?像这样的,我们控制液晶扭转光线的程 度,也就控制了射出光线的强度。射出的光线再经过滤色片,就被转换成了特定颜色、特定强度的光。而屏幕上的每个像素分成三个单元,这三个单元的滤色片颜色 不同(分别是什么色,你猜),每个单元独立加上不同强度的电场,调出不同强度的三基色,对应的像素就表现出五彩缤纷的颜色了。

现在我们来实战一下,让一个像素显示桔色。桔色=251份红光+134份绿光+29份蓝光,RGB码就是FB861D,对应的二进制形式是 111110111000011000011101。然后,主机把这串数字告诉显示器,显示器就给这个像素的三个单元的液晶分别加上对应强度的电场,使它 们能把光线分别拧到相应的方向。这时,灯管发出的白光通过垂直偏振片被转换成垂直偏振光,然后穿过三个单元的液晶分子,被拧成了不同方向的三股斜的偏振 光,再通过水平偏振片,就能射出三股强度不同(分别是251,134,29)的白光来。而站在前方等待这三股白光的,分别是红、绿、蓝三个滤色片,于是它 们又被转换成了251份红光+134份绿光+29份蓝光,混合在一起,人的眼睛就看到了桔色。

计算机屏幕上五彩缤纷的颜色,都是像这样由0和1而表现出来的。简单的两个数字,在计算机科学的舞台上略施小技,就能给你点颜色看看。当你陶醉于屏幕上一张张美仑美奂的图片时,不妨感激一下这两个数字:回眸01之美,足以令六宫粉黛失色。

压题图来源:
From colour squares to colour stripes by Marco Braun

0
为您推荐

18 Responses to ““色”专题:回眸01之美,六宫粉黛失色”

  1. Mycroft说道:

    那个图片好像蜂巢啊。。。。

  2. [...] 苏椰《回眸01之美,六宫粉黛失色》 [...]

  3. ls说道:

    补充一点,在色彩学中,除了用RGB、CMYK表达色彩外,还有许多方法。比如lab。
    在印刷色彩学中,颜色不仅仅与各原色的比例有关,还与颜色的亮度、色相有关。不同的亮度、饱和度会给观测者不同的颜色感受。这就是计算机系统要引进ICC颜色管理系统的原因了。
    对于许多经常在电脑上与颜色打交道的人(例如艺术、印刷行业)来说,经常校准屏幕是非常重要的,因为只有准确的屏幕才可以显示准确的颜色,当然高质量的显示器也是非常重要的 :-).

  4. lalunasun说道:

    终于看到苏椰小盆友的文章了~

  5. 变形机器猫说道:

    一直在琢磨液晶显示器是如何显示黑色的……

    • morris说道:

      这个点不通电,也就不允许任何光线通过,也就黑了。但是技术所限,比如背光的照明影响,有些液晶显示的黑色不纯粹,其实是很接近黑色的灰。。。。

    • 木头鱼说道:

      液晶每个像素点有三色,每个点液晶通电强度决定旋转后通光亮的大小,就像有扇门打开多少来决定这地方该多亮。如果要黑色,把门关上。
      不过,就如morris 所说,因为有背景光,液晶的黑色很难做到纯黑。总会有光是漏过来的

  6. 蓝色的水说道:

    数字能不能完全代表完人类看到的色彩呢

    • Schuyler说道:

      目前不能,就像文中说的,要把色深分成256份~
      自然光以普朗克常数为1份,要分成那么多份,现在的计算机就处理不了啦~

  7. kit说道:

    most LCD don't have three layers...use your magnifying glass you will see one "white" pixel is indeed tiny colored pixels. There is only one layer of liquid crystal, the color filter make different colors.
    Sure there are three layer liquid crystal displays, but not the common one.
    To display black, you just need to block all the backlight. This is also the reason why it's hard to get good black level for LCDs from wide viewing angle.

  8. 杨友三说道:

    多彩的世界!

    真漂亮!

  9. u小橘。说道:

    突然想到最近学的物理了,光那一章,还有PS

  10. 寂寞的化石说道:

    呵呵 受教了
    其实之前一直在琢磨图片是一、用什么方式保存的
    现在想想看也不难,貌似区域色彩转换为二进制代码后再加上坐标信息就可以达到目标了

  11. qzbushi说道:

    数码相机成像也是0和1编码形成的吗?

  12. babyblue说道:

    很有用,很好

  13. 六宫粉黛无颜色,哈哈

  14. 不温柔小妞说道:

    我想问一下。香水里有 白麝香 未婚女子用了会导致不孕吗?????
    有很多人都有疑问,,,希望得到科学可靠的答案