改变色调,饱和度和亮度在HSL颜色空间如果非常容易。见例如,这个javascript实现。
这也是很容易产生的颜色方案,如:类似,单色,三位一体,四分体等。参见这个javascript实现。
问题是HSL颜色系统在感知上是不一致的。
事实上,这是一个真正的问题。
如果你不知道我在说什么,没关系。阅读它:这里和这里。(这两篇文章很短,但很有价值,你真的应该读一下)。
解决方案是使用一个明显一致的颜色空间,例如: CieLab、CieLuv或Hcl。
问题是,这些颜色空间也有超出范围的颜色(无法显示的颜色)。
要使用javascript中的不同颜色空间,请查看chroma.js或染色单体。
在做了这个小介绍之后,我的实际问题是:
我想要生成感知一致的配色方案(类似,三合会,四分体,互补,等等)。正如我在Hsl中提到的,它很简单:例如,为了生成一个三合会方案,我只需用120旋转色调,然后用240旋转色调,而我有一个三合会方案。
嗯,在CieLab,Hcl或CieLuv中,这并不是那么简单。在Hcl (色调,色度,亮度),如果我旋转色调与120级,而不改变色度和亮度,这是可能产生的颜色将不能显示(将在RGB空间之外)。
让我们总结一下这个问题:
如何在感知一致的颜色系统(如CieLab、Hcl、CieLuv或任何其他感知一致的颜色空间)中生成配色方案?
我想在javascript中实现这一点,但基本上我想找到方法,所以这个问题与语言无关。
我希望我们能一起找到一个聪明的方法:)
发布于 2013-03-06 10:18:10
最后,基于HUSL ()颜色空间解决了这一问题。这个颜色空间在视觉上并不完全一致,但它非常接近它。
您可以在这里了解更多:
http://boronine.com/husl/
https://stackoverflow.com/questions/14879643
复制相似问题