小时候看到书里说计算机不过是一台装满了0和1的机器,我总是不以为然:怎么可能,你看屏幕上那些五彩缤纷的颜色。长大后,当我成为了一名久经考验的无产 阶级计算机战士,我才深深地感受到,为什么计算机屏幕美如画,正是那0101染红了它。科学松鼠会专题写作组成立了,第一期的 主题是“色”,我们来思考这样一个问题:装满了0和1的计算机是怎么显示出各种颜色的。
在广大计算机的心目中,宇宙中的一切都是可以编号的,这是宇宙存在的基础。要让计算机能够表示颜色,首先就要给颜色编号。如果每种颜色用一位数字表 示,比如0表示黑,1表示白,这样就能表示2种颜色,可以画个太极图。如果每种颜色用两位数字表示,00=红,01=黄,10=蓝,11=绿,这样可以表 示4种颜色,可以画张不错的儿童画。如果用更多的位,那就能表示更多的颜色,因此,我们就用这个位数来描述颜色的丰富程度,比如说,8位色是256种不同 的颜色,16位是65536种,而24位是16,777,216种。在windows系统的桌面属性设置里,就有这样的选项:
给这么多颜色编码,就不能像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码。下图就是一些常见颜色的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之美,足以令六宫粉黛失色。

转载于:https://blog.51cto.com/apprentice/1360663

回眸01之美,六宫粉黛失色相关推荐

  1. CN華少在此祝各位小伙伴们元宵节,感谢关注

    CN華少在此祝各位小伙伴们元宵节,感谢关注 **今天是农历2022年正月十五,元宵节 元宵节,中国的传统节日之一,又称上元节.小正月.元夕或灯节,时间为每年农历正月十五. 辉煌月色璀璨星,红火灯节五彩 ...

  2. 国美金融是“持牌大户”还是“违规大户”:国美易卡贷超出现套路贷APP,暴力催收恐吓借款人

    来源 | WEMONEY研究室 作者 | 林小林 原标题 | 国美金融是"持牌大户"还是"违规大户":国美易卡贷超出现套路贷APP,暴力催收恐吓借款人 近日,W ...

  3. 国美被曝停发员工工资;支付宝正式接入鸿蒙生态;推特遭到集体诉讼;小马智行业务调整,多位高管离职 | 每日大事件...

    数据智能产业创新服务媒体 --聚焦数智 · 改变商业 01.国美被曝停发员工工资 近日有消息称,国美电器要求员工签署承诺函,希望员工理解并承诺:自2022年10月起,公司在未来半年到一年的时间里可能延 ...

  4. 打不过完美日记,国货美妆集体出海

    NEW 关注Tech逆向思维视频号 最新视频→[男生的秋裤,女生的打底裤,哪个更抗冻?] 出品|新熵 文 |于松叶 编辑|月见 后完美日记时代,花知晓们选择在日本"爆红". 202 ...

  5. 黄光裕出山!国美负债率高,能否转型成功?

    "我是黄光裕" 于2021年4月7日晚,国美零售举行投资人会议上,沉寂12年的黄光裕,首次公开亮相发声. 在发声当日,黄光裕不避负债.不忌亏损,他感叹丢失不少机会,但也自信国美零售 ...

  6. 计算机配置对电子竞技的影响,配置高并不是唯一优点 看看电竞硬件还要啥?...

    01宁美国度星河 战列舰XS 现在有很多游戏品牌依靠品牌的力量为自己背书,以至于很多游戏玩家很难找的合适自己的高性能电脑,电竞体验也就无从谈起,但是今年的新品里还是有一些意外之喜,在整机性能上表现不俗 ...

  7. 文章推荐列表(个人收藏)

    const限定修饰符用法总结 C/C++ cpper 0 3 2011-11-28 11:37 win32 c++编写系统服务程序 C/C++ cpper 0 2 2011-11-28 11:34 V ...

  8. Python全栈开发教程笔记

    本文档基于B站Python教程 一.print()函数 1. 可以输出数字 print(520) print(98.5) 2. 可以输出字符串 print('hello world') print(& ...

  9. 未明学院学员报告:学会数据分析后,我发现美妆大牌到底哪家强 为什么是江浙沪包邮?

    报告作者:邵证夷 未明学院训练营优秀学员 项目报告:<天猫美妆商品数据分析报告> 欧美.日本.韩国.国产美妆哪家强? 为什么是江浙沪地区包邮? 妹子爱买什么颜色的口红? 天猫上产品的搜索关 ...

最新文章

  1. JUnit单元测试依赖包构建路径错误解决办法
  2. Quartz-Spring通过 @Scheduled驱动任务
  3. 如何删除JAVA集合中的元素
  4. palapa php,有什么办法可以在Android上运行PHP
  5. CF1208D Restore Permutation
  6. P3648-[APIO2014]序列分割【斜率优化】
  7. 谈谈你对php的收获和不足,我的收获与不足
  8. 电影票上的字是怎么消失的?
  9. java tostring的用处_JAVA的tostring()方法的作用是什么呢?
  10. java调用jndi出错,Webshpere数据源错误:无法查找JNDI名称
  11. 重构现有代码:Refactoring
  12. 【js】event(事件对象)详解
  13. 每天一个Linux命令(6):rmdir命令
  14. 转:SQL注入攻击的原理
  15. 漫画:什么是加密算法?
  16. JavaScript基础知识总结(必看篇)
  17. 龙芯3A4000处理器简介
  18. 英语单词记忆(词缀 / 词根)
  19. AI算法可帮助因气候变化而流离失所的数百万难民找到新家了!
  20. JAVA输出一个3行4列数组_输入一个3行4列的数组,先以3行4列的格式输出该数组

热门文章

  1. koa2 mysql项目教程_koa2教程【mysql,路由,跨域,静态服务】
  2. cordic实现对数运算
  3. [QQAI机器人]-爬虫机器人
  4. 银时之魂服务器端文件,银时之魂电脑版 银时之魂PC版安装教程
  5. Kotlin构造函数(constructor)完全解析
  6. 了解平面设计师培训内容,轻松找对方向不迷路
  7. MySQL用户、库、表(单/多)操作
  8. 代码调试技巧小集合(雨中飞燕出品)
  9. Flutter配置代理抓包
  10. 解决PostgreSQL强制类型转换,pg数据库转换数字时存在字符串报错,pgSQL字符串强转报错 的一种终极解决方法