将子颜色名称转换为parant颜色名称

时间:2018-06-04 18:53:33

标签: python css image colors

我引用了一个问题https://stackoverflow.com/a/9694246/98276来获取RGB值的颜色名称。 但是存在太多的颜色名称。所以我想做的是如果我得到颜色名称“maroon”,改为“红色”。另外,如果得到“学员蓝”,改为“蓝色”

actual_name, closest_name = get_colour_name(requested_colour)
if actual_name == None:
    actual_name = get_parantColor(closest_name) #if closest_name was maroon, return red.

1 个答案:

答案 0 :(得分:1)

这个问题可以通过多种方式得到解答。这实际上取决于两件事:

  1. 你的基础池的颜色是什么,
  2. 您想要使用的相似度(即从任意颜色到基色的翻译(匹配)功能应该是什么样的) - 与webcolors相同的引用的问题是否有所不同?
  3. 例如,一个非常简单的方法是'red''green''blue'作为您的颜色池,翻译功能可以检查颜色的红色,绿色和蓝色组成部分返回最高者。例如,对于颜色RGB(128, 0, 0)(栗色),您将返回'red',因为红色组件是最突出的组件。 (但是,如果两个或所有三个组件同等存在,你会怎么做?这也是你需要定义的东西。)

    如果您遇到的颜色数量有限,另一种解决方案是创建一个字典,将您的输入颜色映射到您的一种基色:{'maroon': 'red', 'cadet blue': 'blue', ...}并使用它。

    解决方案实际上取决于您如何定义问题。一开始的两点可以帮助解决这个问题。