有什么方法可以绘制看起来平滑的色调渐变?

例如,看下面的图片:

c++ - 绘制视觉上平滑的色调坡道?-LMLPHP
在我的sRGB校准显示器上,我可以很清楚地看到在60、180和300°处看起来是三角形的“峰值”。同时,红色,绿色和蓝色之间的谷值似乎并没有发生太大变化,例如110°和130°之间的差异从视觉上讲很小。

我想做的是想出一种生成看起来更平滑的色调渐变的方法,其中的颜色似乎更加无缝地融合在一起。

有什么办法吗?它不需要是线性的色相渐变,所以我真的不在乎颜色实际出现在哪里,只要渐变的开始和结束都是红色(0°/ 360°)即可。

最佳答案

如果您阅读HCL色彩空间(Wikipedia),您会发现它与人类对色彩的感知更好地匹配。 Anthony Thyssen的出色笔记here中也对此进行了讨论。

如果我在HSL色彩空间中进行色相渐变,请在终端上使用以下 ImageMagick 命令:

convert -size 100x512 gradient: -rotate 90 \( +clone -fx "1" \) \( +clone -fx "0.5" \) -combine -set colorspace HSL result.png

我得到这个:

c++ - 绘制视觉上平滑的色调坡道?-LMLPHP

而如果我在HCL颜色空间中构建它,如下所示:
convert -size 100x512 gradient: -rotate 90 \( +clone -fx "1" \) \( +clone -fx "0.5" \) -combine -set colorspace HCL result.png

我得到了更平滑的坡度:

c++ - 绘制视觉上平滑的色调坡道?-LMLPHP

上面的 ImageMagick 命令只是创建一个黑白渐变并将其用作H通道,然后对其进行克隆并将其设置为“1”以创建C通道,然后再次对其进行克隆并将其设置为“0.5”以使L channel 。然后将这三个通道合并,并在输出文件中另存为sRGB。

关于c++ - 绘制视觉上平滑的色调坡道?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39326852/

10-14 13:22