图形 – 计算RGB中的混合颜色

前端之家收集整理的这篇文章主要介绍了图形 – 计算RGB中的混合颜色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要能够使用两个RGB-256向量并计算它们的混合结果。此外,我想要能够给每个矢量不同的重量。我已经使用Word色板进行了实验,我已经看到,一些颜色根据加权平均值进行混合:

0.5 *红(255,0)0.5 *黄(255,255,0)=橙(255,127,0)

其他人不:

0.5 *黄色(255,0)0.5 *蓝色(0,255)=灰色(127,127)而不是绿色(0,0)

是否有一个算法准确计算所有的颜色,或者我被迫使用查找表做它?

解决方法

最好的解释是, RGB color model对于我们的人来说有点不直观。视频显示设备(如显示器或电视机)完全符合逻辑,只能通过混合不同量的3种预定义颜色(红色,绿色和蓝色)来了解如何显示颜色。但是,这不是你和我学会如何在年级上混合颜色。

在RGB中,颜色白色表示为(255,255),相当于“全部打开”。显示每个红色,绿色和蓝色分量的全部值,这会产生如此高的光强度,我们将颜色视为白色。相反,黑色(0,0)是显示设备的“默认”状态 – 当没有显示颜色光(“0”)时,结果为黑色或没有颜色。

当您完全混合黄色(255,255,0)和蓝色(0,0,255)时,您将获得由(255,255)或白色表示的颜色。当您将白色乘以0.5时,会得到灰色,因为255 * 0.5 = 127。

当混合红色和黄色时,它可能比任何您获得预期结果的异常更是一个异常现象。红色黄色是(510,0),所以当你乘以0.5时,你会变成橙色(255,127,0)。

事实证明,你和我在小学中学到的知识更加准确地称为subtractive color model,而RGB使用的是additive color model。查看底部的两个图表,您将看到左侧的RGB颜色模型(添加),而右侧的CMYK颜色模型(减法)。你应该可以立即看到问题。而使用减色模型会产生您想要的结果。

编辑:当然这比说起来容易一些。也就是说,即使您采用CMYK颜色模型而不是RGB(这已经很困难了,因为从RGB到CMYK的转换与设备相关,并且远非直截了当),这可能仍然不能满足混合纯蓝( 0,0,255)与纯黄色(255,0)并获得绿色。 CMYK使用青色,品红色和黄色作为3原色,而不是红色,黄色和蓝色。如果您想以您选择的语言实现RYB color model,您将有很多工作在您之前。

我不知道有什么这样的算法可以真正地组合RGB颜色。我正在试图解释为什么这是不可能的,至少是非常困难的。你可以把这个问题再打开几天,看看有没有人有任何想法,但是如果你需要坚持使用RGB模型,那么我会继续前进一下这个查找表。

猜你在找的CSS相关文章