色彩中不能再分解的基本色称之为原色,原色可以合成其他的颜色,而其他颜色却不能还原出本来的色彩【1】。
所有颜色都可以由三种颜色混合而成,这三种颜色就是我们常说的三原色。(空间坐标也是由三个基坐标组合而成,比如笛卡尔坐标系的x、y、z,球坐标系的r、θ、φ,惊人的相似,绝不仅仅是巧合)
最常见的三原色有两种:
色光三原色(红0xff0000、绿0x00ff00、蓝0x0000ff);
颜料三原色(黄0xffff00、品红0xff00ff、青0x00ffff);
色光的三原色叠加之后是白色,颜料的三原色叠加之后是黑色。
颜料的三原色为什么不也用红绿蓝,为什么要选取这三种颜色?
这是因为使用色光三原色的,都是自己发光的,比如显示器;使用颜料三原色的都是自己不发光,发射光的,比如颜料。 仔细观察,不难看出,颜料三原色刚好是色光三原色的互补色。
如何用程序需实现三原色的叠加?
可以参考adobe的实现方式,叫“正片叠底【2】”,photoshop和flash中都是使用的这种模式。
可以了解两个概念:加色模式、减色模式。加色模式是发出什么光,减色模式是反射什么光(除了反射的光以外其余的光被吸收了,为啥是反射?因为CMYK基于的印刷颜料又不是夜光颜料,自己不会发光啊!)【3】。
如何用代码实现。
听起来很高大上,实现起来很简单。
正片叠底的英文是multiply 也就是相乘。
公式:混合色×基色 / 255=结果色。
RGB通道分别使用共计计算即可。
扩展:可以了解一下“滤色”模式。
参考:
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。