作者; 中国数字油画网 ; www.tuhuacn.com 谭明刚 微信 cathaylove
红色,黄色和蓝色是原色…对吗?
几年前,我正在与Skye交谈,她告诉我如何对大多数图像处理和操纵软件中的计算机上的拾色器感到恼火,以及她想如何使用真实的色轮或拾色器。
我很困惑。我在网上看到了很多拾色器,它们都显示了您习惯于看到的标准彩虹色,并使用了十六进制,RGB,HSL等多种输出格式。色彩理论及其与计算机的关系。
在学校里,我被告知原色是红色,黄色和蓝色。使用这些颜色,可以通过将它们混合在一起来创建所有其他颜色。但是,对于监视器,电视,投影仪等,使用的颜色是红色,绿色和蓝色,通常称为RGB。为什么有什么不同?如何用黄色代替绿色并仍然获得相同的颜色?
为了增加混乱,打印机和物理介质不使用RGB。取而代之的是,它们使用该色轮的第二色,即青色,品红色和黄色,称为CMYK,其中K表示黑色。在继续进行之前,最好先解释RGB和CMYK,并介绍一些术语。
RGB和CMYK
RGB或红色,绿色和蓝色是计算机或更确切地说是监视器的原色。RGB颜色模型是一种附加颜色模型,其中将红色,贪婪和蓝色的光加在一起以创建不同的颜色。所有加在一起的颜色(以十六进制表示为#ffffff,或100%红色,100%绿色和100%蓝色表示白色)。
该CMYK颜色模型,相反,是一个使用3种颜色减色模型:青色,品红色和黄色,以及黑色一个第四值。所有颜色加在一起(因为它是减色模型),将导致黑色而不是白色。添加K或黑色用于打印,因为通过不将所有其他三种墨水混合在一起就更容易(且更便宜)来获得真正的黑色。此颜色模型通常用于打印。
现在,我们有了RYB(红色,黄色和蓝色)颜色模型……它适合什么位置?
瑞比
好吧,将RYB与RGB进行比较并不真正合适,因为RYB是减色模型(颜色混合在一起会产生黑色),而RGB是加法颜色模型(相加在一起会导致白色)。因此,问题就变成了,如果它们都是相同类型的颜色模型,为什么要使用CMYK而不是RYB进行打印?
在RYB Wikipedia页面上,有一个引号很好地总结了原因:
RYB早于现代科学色彩理论,该理论认为洋红色,黄色和青色是三种着色剂的最佳组合,适用于最广泛的高色度色彩。红色可以通过将品红色和黄色混合来产生,蓝色可以通过将青色和洋红色混合来产生,而绿色可以通过将黄色和青色混合来产生。在RYB模型中,红色代替品红色,蓝色代替青色。
随着技术的进步,有人认为RYB在可产生的高色度颜色方面劣于CMYK。如果您使用Google,这将变得非常有趣real primary colors。出现了很多非常热心的结果,相当于“ RYB死了,CMYK寿命很长”……因为我们都知道红色的互补色是青色,对吗?这里只是几个例子:
- 为什么您的美术老师对原色撒谎
- 现在该教正确的原色了
- 色轮是谎言!-真正的原色
- 真正的原色
因此,您现在可以看到 下面的真实色轮,而不是帖子顶部的色轮,它具有所有荣耀,显示出您在自然产生的彩虹中永远看不到的颜色。
这些是您可能习惯在计算机上看到的颜色。这些是您在任何颜色选择器以及大多数图像编辑和处理软件中所具有的选择。
了解了所有这些,并且不能接受自然界产生的彩虹是错误的之后,我开始研究RYB到RGB,以查看是否做过任何工作来使计算机以一种真正的绘画方式处理色彩。我想保留“ roygbiv”,而不必学习“ rygcbm”。
RYB代替RGB
我发现有两个非常幼稚和错误的实现,最终都无法正常工作。我挠了挠头,经过一段时间的挫败,最终走开了。
注意:上面的链接指向最初用Python编写的我的JavaScript代码实现,因为原始链接不再起作用。
后来,我重新审视了这个问题,并找到了一个非常有用的指南:明尼苏达大学双城分校的 2位博士撰写了有关计算机RYB混色的论文。
总结本文,研究人员提出了一种方法,可以将RYB中的值转换为RGB。使用此方法,您可以提供一定数量的颜色红色,黄色和蓝色,并且它将确定在监视器上显示颜色所需的红色,绿色和蓝色的数量。
该算法通过从RGB空间内插到RYB空间中预先确定的颜色来工作。预定的颜色是从约翰内斯·伊滕(Johannes Itten)的色轮中选择的,约翰内斯·伊滕(Johannes Itten)以1800年的色彩理论工作而闻名。
在下图中,您可以看到一个立方体上有8个点(角),每个点代表一种颜色(以RGB为单位)。当您提供一定数量的红色,黄色和蓝色时,它会通过在Y轴(向上)中的Y(黄色)单位,在Z轴(后方)中的B(蓝色)单位来计算要返回的颜色, X轴上的R(红色)单位(右)。
每种RYB颜色均表示3D空间中该多维数据集内的一个点,该算法将这些颜色混合在一起以找出要返回的RGB颜色,该颜色将能够在监视器上显示与RYB提供的颜色匹配的颜色。
使用本文,我能够制作一个可以将RGB成功转换为RYB的有效JavaScript实现。有了这种算法,以及大量的前端JavaScript开发,我就能够为浏览器开发出功能完善的颜色选择器。
中国数字油画网 www.tuhuacn.com
作为最后的奖励,我添加了对RYB插值使用的预定颜色进行随机化的功能。通过扩展Interpolation颜色选择器中的选项卡,可以将其设置为Random,然后单击Randomize按钮以生成一些漂亮的百搭轮……如下所示。