有没有一种方法可以从该颜色的色调/阴影开始找到基色,或者将一种颜色的变化组合在一起?
例如:#9c2b2b / RGB(156,43,43)是红色的阴影,#2354c4 / RGB(132,162,232)是蓝色的色调
但是,例如,给出这两种颜色,是否有一种方法可以在Python中确定这是红色(#FF0000 rgb(255,0,0))或蓝色(#0000FF rgb(0,0,255))的变体
我知道如何,我在网上找到了很多教程,并回答了如何通过采取基色和乘或减来做渐变。
谢谢你
有没有一种方法可以从该颜色的色调/阴影开始找到基色,或者将一种颜色的变化组合在一起?
例如:#9c2b2b / RGB(156,43,43)是红色的阴影,#2354c4 / RGB(132,162,232)是蓝色的色调
但是,例如,给出这两种颜色,是否有一种方法可以在Python中确定这是红色(#FF0000 rgb(255,0,0))或蓝色(#0000FF rgb(0,0,255))的变体
我知道如何,我在网上找到了很多教程,并回答了如何通过采取基色和乘或减来做渐变。
谢谢你
1条答案
按热度按时间vdzxcuhz1#
有几种方法我可以想到如何做到这一点。下面的代码片段使用colorir库
1.根据感知距离对颜色进行分组
这种方法的问题是,我不认为你对“色调”的定义与色距的定义是一样的(这本身就很有争议,见this)。
这意味着,如果我们向'tints'数据集添加紫色,例如'#800080',
palette.most_similar('#9c2b2b')
将返回'#800080'。这是因为'#9c2b2b'的感知亮度更接近我们的紫色,而不是红色。一个可能的解决方法是只使用类似亮度的参考“色调”。
2.按色相分组颜色
然而,这种解决方案可能更合适。
在这里,我们只关注它们的色调分量,而不是根据整体相似性对颜色进行分组。色调是颜色的“颜料”,也是HSL和HSV颜色系统的组成部分之一。
这种方法的缺点,正如在原始帖子的评论中提到的,是它不能识别接近黑色,白色或灰色的颜色。
你也可以合并的方法,并说,对于混合,颜色非常接近黑色或白色应该与这些分组,但否则,他们应该按色调排序。由于这个问题没有单一的答案,你真的必须用我描述的方法来试验,看看什么最适合你。