如果我有两种颜色由RGB值定义,我可以平均红色,绿色和蓝色值然后组合以定义看起来像两者的视觉平均值的第三种颜色吗?
即NewColor =(R1 + R2)/ 2,(G1 + G2)/ 2,(B1 + B2)/ 2
EDIT1:感谢所有回复.对于我目前的需求,我只处理颜色相同的颜色对,所以我认为平均它们会起作用.但是,我将尝试转换到Lab Space以确保假设是正确的,并且该技术将来会有用.
EDIT2:这是我的结果FWIW.Color1和Color2是我的两种颜色,两个中间列是分别在L a b空间和平均RGB中取平均值的结果.在这种情况下,两种颜色之间没有太大差异,因此平均技术的输出差异是微妙的.
问题:我想在javascript中混合两种颜色,并获得结果颜色.在SO上有很多类似的问题,但我没有发现任何实际上正常工作的问题.我知道混合两种不同颜色的颜料(颜料)和灯会产生非常不同的结果(http://en.wikipedia.org/wiki/Color_mixing).
以下是我已经看到的问题和建议的解决方案,并尝试实施:
1: 混合两个RGB颜色矢量以得到结果
因此,混合RGB中的颜色.我实现了它,在某些情况下它可以在某些情况下使用它没有.
工作示例:red
与yellow
- > 混合orange
.大!
http://jsbin.com/afomim/1/edit
不工作的例子:blue
与yellow
- > 混合gray
.不太好!:)
http://jsbin.com/afomim/5/edit
我知道,在RGB混合blue
使用yellow
不会让green
的,我明白为什么.
我们不会在这里找到答案,让我们继续前进.
让我们尝试使用本讨论中建议的CMYK值.混合cyan
与yellow
给出green
:
http://jsbin.com/igaveg/1/edit
但混合blue
使用yellow
的结果black
.
http://jsbin.com/igaveg/2/edit - >不工作!
3: 如何将"自然"与C#混合使用?
一个非常相似的问题.最受欢迎的答案建议将颜色转换为LAB,这个解决方案似乎很有希望.
所以我将我的颜色转换为LAB.转换算法是正确的,我测试了它!
http://jsbin.com/oxefox/1/edit
现在我在LAB中有两种颜色,但是如何混合呢?
注:我知道,可能我会找不到一个混合算法中blue
使用yellow
,并给完美的green
,但我希望我能够生成类似于绿色的东西:)
我正试图找到一种比较两种颜色的方法,以找出它们的相似之处.我似乎无法找到关于这个主题的任何资源,所以我希望在这里得到一些指示.
理想情况下,我想得到一个分数,告诉他们有多相似.例如,0到100,其中100将相等,0将完全不同.
谢谢!
编辑:
从答案中了解更多关于颜色的知识我理解我的问题有点模糊.我会尝试解释我需要的东西.
我有一个800x600大小的应用程序窗口的pixeldata(位置和颜色),所以我可以通过检查每个x间隔来查明某个窗口是否打开.
但是,一旦调整应用程序的大小(内容被缩放,而不是移动),此方法就会失败.我可以计算出像素移动的位置,但是由于四舍五入和防眩化,颜色可能略有不同.
在这种情况下,彼得的解决方案对我来说已经足够好了,尽管所有其他回复也非常有帮助,所以我只是向所有人投了赞成票.我确实认为ColorEye的答案是最专业的,从专业的角度来看,所以我把它标记为答案.
我试图混合两个源RGB矢量来创建第三个"合成矢量",这是前两个的直观组合.
理想情况下,我可以模仿"真正的油漆混合特性",但为了简单起见,我试图找到一种方法,其结果看起来直观地像你从组合两个源rgb得到的结果.
最低限度,这些特征:
RED + BLACK =深红色
+白色=浅红色
最佳,也具有真正的油漆特性:
RED + BLUE =紫色
红色+黄色=橙色
(等)
-
我目前通过添加两个源RGB矢量/ 255,然后归一化(并乘以255)来做"懒惰的方式".所以,使用这个:[Red = <1,0,0>*255] + [Blue = <0,0,1>*255]给出Magenta = <1,0,1>/sqrt(2)*255,虽然其他颜色不太直观甚至不可见......我需要一个更好的方法!请帮忙 :-)
如果我给两种颜色
UIColor *color1 = [UIColor blackColor];
UIColor *color2 = [UIColor whiteColor];
Run Code Online (Sandbox Code Playgroud)
我应该得到grayColor,我该如何实现呢?
我正在使用cocos2d库制作iOS游戏.
假设您有两个具有两种不同颜色的对象 - 以RGB格式定义
Blue: 0,0,255
Yellow: 255,255,0
Run Code Online (Sandbox Code Playgroud)
我想添加蓝色和黄色来制作绿色.
为了使事情复杂化,让我们说Blue对象比Yellow对象更大(为了说明,我们说比例为2:1),我加入的蓝色是黄色的两倍 - 我如何计算这个新的(浅绿色)颜色正确.
我理解LAB*Color Space对于这种"自然色"的东西很有用,但我不知道如何使用它 - 特别是在cocos2d对象的上下文中,(AFAIK)仅限于在其中使用RGB配色方案.
我真的很感激如何实现这一点的实际帮助.谢谢堆!
21/4更新:所以在LAB*中蓝色+黄色≠绿色(当你看到它们位于同一个通道的两端时才有意义).它实际上是一个相当棘手的问题,一个小 一点的讨论SO.似乎最终的答案是使用Kubelka-Munk方法,即一种名为Krita的开源软件.我找不到任何地方(公式或代码本身).
这个问题有一个链接,它使用HSL以类似的方法绘制.我将尝试查看它是否有效,我将在此处反馈结果.
与此同时,如果有人知道如何实现Kubelka-Munk或者我可以找到代码来执行此操作,或者其他解决方案,我会非常非常激动!
是否有人知道在哪里可以找到或实现Kubelka-Munk功能以像自然涂料一样混合颜色?Emanuelle Tamponi在开源项目Krita中实现了此功能,但在任何地方都找不到这种或类似方法可以“自然地”混合颜色的功能。可能是商业上敏感或私人的,但如果您不询问,就不会发现!
I'm trying to find an algorithm that will mix colors, based on a % amount. I'm working on an election project, and want to be able to assign each candidate in a race a different color, and then create a "resulting" color based on how much of the vote that candidate has gotten.
This question:
Is there an algorithm for color mixing that works like mixing real colors?
is close the question I'm asking - but potentially I need to …
colors ×7
math ×3
rgb ×3
c# ×2
objective-c ×2
.net ×1
c++ ×1
color-scheme ×1
compare ×1
ios ×1
javascript ×1
paint ×1
uicolor ×1
vector ×1