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 +红色)产生两种完全不同的颜色. …
我正在申请我有五种颜色:红色,绿色,蓝色,黄色,紫色
我想用这些颜色实现颜色混合:就像每种颜色有五个按钮一样.
用户触摸此颜色与先前绘制的颜色混合的任何颜色按钮.
我不知道如何添加两个颜色代码并获得第三种颜色.
编辑:
我还必须将此颜色设置为imageview的位图
我怎么设置这个?
我环顾了不同的来源:
但是,这些答案都不是我正在寻找的。
我想要做的是获得 2 种颜色范围内的随机颜色,例如紫色和粉红色。对于紫色#6A0DAD和粉红色#FFC0CB,我想在这两种颜色的范围内抓取一种颜色,但要随机一种。所以我会得到例如#D982B5,这是品红色粉红色。
到目前为止,除了制作随机数之外,我不知道从哪里开始。