【问题标题】:RGB, how to generate matching colors palette?RGB,如何生成匹配的调色板?
【发布时间】:2012-10-28 22:19:53
【问题描述】:

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

现在,我正在尝试为选定颜色动态生成匹配颜色,比如说“红色”,然后我想为红色生成 5 种匹配颜色,例如:黑色、橙色、其他红色调、一些蓝色,等等……

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

【问题讨论】:

标签: c# algorithm


【解决方案1】:

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

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

您所做的转换取决于您想要生成什么样的相关颜色。例如,如果您想要互补色,您可能想要获取颜色,保持 S 和 V 不变,并从当前颜色生成色轮周围 1/3 和 2/3 的颜色。通过改变值可以制作更亮和更暗的版本,而通过改变饱和度可以制作更多和更少的“强烈”颜色。

【讨论】:

    【解决方案2】:

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

    我不能完全告诉你如何处理你的代码而不看它,但我可以告诉你,如果你有一个控件或对象,其中你有一个 RGB 属性,你可以修改所述属性中的值以使控件或对象的颜色您想要的任何颜色。尝试查看哪些值会产生您想要的颜色,然后以您寻求的动态方式将这些值输入到属性字段中。

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 2016-01-22
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多