如果很容易改变 HSL 颜色空间中的色调、饱和度和亮度。例如,请参阅此 javascript 实现。
生成配色方案也很容易,例如:类比、单色、三色、四色等。请参阅此 javascript 实现。
问题在于 HSL 颜色系统在感知上并不统一。
实际上这是一个真正的问题。
如果你不知道我在说什么,没关系。阅读它:这里和这里。(这两篇文章很短但很有价值,你真的应该阅读它们)。
解决方案是使用感知一致的色彩空间,例如:CieLab、CieLuv 或 Hcl。
问题是这些色彩空间也有超出色域的颜色(无法显示的颜色)。
要在 javascript 中使用不同的颜色空间,请查看chroma.js或chromatist。
在这个小介绍之后是我的实际问题:
我想生成感知上统一的配色方案(类似的、三色的、四色的、互补的等)。正如我在 Hsl 中提到的那样,它很简单:例如,要生成一个三元组方案,我只需将 HUE 旋转 120,然后使用 240,我就有一个三元组方案。
好吧,在 CieLab、Hcl 或 CieLuv 中,这并不是那么简单。在 Hcl(色相、色度、亮度)中,如果我在不改变色度和亮度的情况下将色相旋转 120 级,则生成的颜色可能无法显示(将在 RGB 空间之外)。
让我们总结一下这个问题:
如何在感知一致的颜色系统(如 CieLab、Hcl、CieLuv 或任何其他感知一致的颜色空间)中生成配色方案?
我想在javascript中实现这个,但基本上我想找到方法,所以问题是语言无关的。
我希望我们能一起找到一个聪明的方法:)