RGB,如何生成匹配的调色板?

时间:2012-10-28 22:19:54

标签: c# algorithm

我正在开发一个应用程序,我必须使用一些RGB颜色。实际上,我有RGB和它的HEX / HSV等效。

现在,我正在尝试动态生成所选颜色的匹配颜色,让我们说'红',然后我想为红色生成5种匹配颜色,例如:黑色,橙色,其他红色,一些蓝色,等...

我不了解颜色及其计算的工作原理,因此非常感谢任何帮助,提示,代码段。

2 个答案:

答案 0 :(得分:0)

HSV是一种比RGB操作颜色更好的色彩空间,因为HSV的轴直接对应于有用的颜色转换。

要使颜色更亮或更饱和,请增加其饱和度。要去饱和(制作灰度),请降低饱和度。减小颜色的V(值)使其变暗 - V为0的所有颜色都是黑色。更改色调会改变颜色本身,在色轮周围移动。有关详细信息,请参阅维基百科的article on HSV

您执行的转换取决于您要生成的相关颜色类型。例如,如果你想要补色,你可能想要采用颜色,保持S和V不变,并从当前颜色生成色轮周围1/3和2/3的颜色。通过改变值可以制作更亮更暗的版本,而通过改变饱和度可以产生越来越“强烈”的颜色。

答案 1 :(得分:-2)

RGB颜色只是内存中的一个空间,你有三个值,每个值的范围是0到255.例如,红色在“红色”字段中只有255,0,0 ... 255(最大)内存位置,“蓝色”和“绿色”中的零。当你将这些不同的值混合在一起时,你开始得到我们在屏幕上看到的几乎无限的颜色。

我无法告诉你如何处理你的代码而没有看到它,但我可以告诉你,如果你有一个控件或对象你有一个RGB属性,你可以修改所述属性中的值来制作控件或对象的颜色您想要的任何颜色。试验看看哪些值产生了你想要的颜色,然后以你想要的动态方式将它们输入到属性字段中。