21
2017
08

三原色与正片叠底

色彩中不能再分解的基本色称之为原色,原色可以合成其他的颜色,而其他颜色却不能还原出本来的色彩【1】

所有颜色都可以由三种颜色混合而成,这三种颜色就是我们常说的三原色。(空间坐标也是由三个基坐标组合而成,比如笛卡尔坐标系的x、y、z,球坐标系的r、θ、φ,惊人的相似,绝不仅仅是巧合)

最常见的三原色有两种:

色光三原色(红0xff0000、绿0x00ff00、蓝0x0000ff);

颜料三原色(黄0xffff00、品红0xff00ff、青0x00ffff);

色光的三原色叠加之后是白色,颜料的三原色叠加之后是黑色。

颜料的三原色为什么不也用红绿蓝,为什么要选取这三种颜色?

这是因为使用色光三原色的,都是自己发光的,比如显示器;使用颜料三原色的都是自己不发光,发射光的,比如颜料。 仔细观察,不难看出,颜料三原色刚好是色光三原色的互补色。


如何用程序需实现三原色的叠加?

可以参考adobe的实现方式,叫“正片叠底【2】”,photoshop和flash中都是使用的这种模式。

可以了解两个概念:加色模式、减色模式。加色模式是发出什么光,减色模式是反射什么光(除了反射的光以外其余的光被吸收了,为啥是反射?因为CMYK基于的印刷颜料又不是夜光颜料,自己不会发光啊!)【3】


如何用代码实现。

听起来很高大上,实现起来很简单。

正片叠底的英文是multiply 也就是相乘。

公式:混合色×基色 / 255=结果色。

RGB通道分别使用共计计算即可。


扩展:可以了解一下“滤色”模式。


参考:

  1. 百度百科-三原色

  2. 百度百科-正片叠底

  3. 知乎-如何简单的理解正片叠底和滤色


« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。