RGB颜色的常见混合与绘画的混合颜色非常不同,它是混合光而不是混合颜料.
例如:
Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128)
Run Code Online (Sandbox Code Playgroud)
(它应该是蓝色+黄色=绿色)
是否有任何已知的混色算法,就像混合真实颜色一样?
我已经尝试过以下内容:
将两种颜色转换为HSV并混合色调(乘以从饱和度计算的系数),以及饱和度和值通道的简单平均值.然后我从两种颜色计算平均亮度,并调整结果颜色以匹配此亮度.这很有效,但色调混合有时是错误的,例如:
Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°)
Run Code Online (Sandbox Code Playgroud)
我发现有时我需要将色调值移动360°(当色调之间的差异大于180°时).
Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°)
Run Code Online (Sandbox Code Playgroud)
但这种转变也不是很好,例如:
Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5°
Cyan (Hue 181°) + Red (Hue 0°) --> shifting is performed (the difference is greater than 180°)
Cyan (Hue 181°) + Red (Hue 360°) = Hue 270.5°
Run Code Online (Sandbox Code Playgroud)
(色调179 +红色)和(色调181 +红色)产生两种完全不同的颜色. …
我想创建一个包含12个切片的饼图,每个切片都有不同的颜色.
几乎每个色轮似乎都遵循相同的格式; 例如:http://www.tigercolor.com/color-lab/color-theory/color-theory-intro.htm.
但是有什么算法可以产生颜色?RGB(theta)背后的数学是什么?当然必须有一些既定的科学,但谷歌并没有给我任何线索.
我正在寻找一种算法将RGB颜色转换为CMYK.Photoshop正在执行以下转换:
R = 220 G = 233 B = 174
C = 15 M = 0 Y = 40 K = 0
我一直试图让可视化进行几天.我正在生成衍射图像,并希望根据光的波长对其进行着色.
获得正确颜色的最简单方法是使用HSV空间,其中H随波长变化而S,V设置为1.0
Alas,我找不到在HSV空间中混合不同颜色的公式/算法/方式.
是否存在混合HSV或其他可理解方式的公式?
我正在使用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或者我可以找到代码来执行此操作,或者其他解决方案,我会非常非常激动!
我在这里看了一些解决方案,但没有提供我需要的东西,所以:
我需要平均一个角度数组(0到359.9,没有负数)(A1 + A2 + A3 + An)/ n
问题是当你得到一个数组{1,359,2,358}时,如果使用上面的公式,平均值是180,但实际上它应该是0.
有什么想法吗?
浅色和油漆之间存在不匹配:虽然物理学家会说三原色是红色,绿色和蓝色,但画家会将红色,蓝色和黄色作为原色.事实上,当用水彩画画时,你不能混合红色,绿色和蓝色的黄色,而不是混合橙色,你只会变成棕色.
这是我正在尝试做的事情:从两种给定的RGB颜色我想计算组合颜色的RGB代码,我希望颜色像水彩一样混合在纸上.据我所知,计算通常如下所示:
但是,当混合蓝色和黄色时,结果是灰色的:
在纸上你会期望变绿(#008800)并且在混合颜色时永远不会变灰.
所以我的问题是,我怎么能用绿色交换绿色作为原色,然后我怎样才能计算出符合油漆定律而不是浅色定律的混合色?
colors ×5
c++ ×2
math ×2
.net ×1
algorithm ×1
blending ×1
c# ×1
cmyk ×1
color-picker ×1
color-space ×1
color-wheel ×1
hsv ×1
objective-c ×1
photoshop ×1
rgb ×1