【发布时间】:2010-09-28 17:35:50
【问题描述】:
我必须以自然的方式混合一些颜色。这意味着
blue + yellow = green
blue + red = purple
等等。我将颜色作为 RGB 值。当我尝试混合它们时,我得到了正确的“RGB”结果,例如
green + red = yellow
yellow + blue = white
但不是正确的“自然湿漆”结果。知道如何以自然的方式混合 RGB 吗?
如果有人知道Microsoft.Xna.Framework.Graphics 命名空间内的解决方案,那就太好了,但通用解决方案也会有所帮助:)
@Jay Bazuzi:
请发布一个代码示例,显示 你想做什么。
当然 - 这是我混合两种 RGB 颜色的功能。
public Color colorMixer(Color c1, Color c2)
{
int _r = Math.Min((c1.R + c2.R),255);
int _g = Math.Min((c1.G + c2.G),255);
int _b = Math.Min((c1.B + c2.B),255);
return new Color(Convert.ToByte(_r),
Convert.ToByte(_g),
Convert.ToByte(_b));
}
到目前为止,我在此线程中所读到的内容非常有希望 - 我会将 C1 和 C2 转换为 Lab*,将它们混合 - 将其转换回 RGB 并返回该颜色。
【问题讨论】:
-
请发布一个代码示例,说明您正在尝试做什么。
-
见stackoverflow.com/questions/10254022/,这里有更详细的讨论。
-
好问题!你的 colourMixer 方法也帮了我很多!