在Lab、Hcl或任何感知均匀的颜色系统中改变色调和亮度

Changing hue and lightness in Lab, Hcl or any perceptually uniform color system

本文关键字:颜色系统 改变 色调 亮度 Lab Hcl 感知 任何      更新时间:2023-09-26

在HSL颜色空间中更改色调、饱和度和亮度非常容易。例如,请参阅此javascript实现。

生成类似、单色、三元、四元等配色方案也很容易。请参阅此javascript实现。

问题是HSL颜色系统在感知上不均匀
事实上,这是一个真正的问题。

如果你不知道我在说什么,那没关系。阅读:这里和这里。(这两篇文章很短,但很有价值,你真的应该读一读)。

解决方案是使用感知均匀的颜色空间,如:CieLab、CieLuv或Hcl。

问题是,这些颜色空间也有超出色域的颜色(无法显示的颜色)。

要在javascript中使用不同的颜色空间,请查看chroma.js或chromost。

在这个小介绍之后,这里是我的实际问题:

我想生成感知均匀的配色方案(类似、三元组、四元组、互补等)。正如我在Hsl中提到的,这很简单:例如,要生成三元组方案,我只需将HUE旋转120,然后旋转240,就有了三元组方案。

在CieLab、Hcl或CieLuv中,并没有那么简单。在Hcl(Hue,Chroma,Lightness)中,如果我在不改变色度和亮度的情况下旋转120级Hue,则生成的颜色可能无法显示(将在RGB空间之外)。

让我们总结一下这个问题:

如何在感知均匀的颜色系统(如CieLab、Hcl、CieLuv或任何其他感知均匀的色空间)中生成配色方案

我想用javascript实现这一点,但基本上我想找到方法,所以问题与语言无关。

我希望我们能一起找到一个聪明的方法:)

最后,我基于HUSL(人性化HSL)颜色空间解决了这个问题。这个颜色空间在感知上并不完全一致,但它非常接近它

你可以在这里了解更多信息:

http://boronine.com/husl/