我引用了一个问题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.
答案 0 :(得分:1)
这个问题可以通过多种方式得到解答。这实际上取决于两件事:
webcolors
相同的引用的问题是否有所不同?例如,一个非常简单的方法是'red'
,'green'
,'blue'
作为您的颜色池,翻译功能可以检查颜色的红色,绿色和蓝色组成部分返回最高者。例如,对于颜色RGB(128, 0, 0)
(栗色),您将返回'red'
,因为红色组件是最突出的组件。 (但是,如果两个或所有三个组件同等存在,你会怎么做?这也是你需要定义的东西。)
如果您遇到的颜色数量有限,另一种解决方案是创建一个字典,将您的输入颜色映射到您的一种基色:{'maroon': 'red', 'cadet blue': 'blue', ...}
并使用它。
解决方案实际上取决于您如何定义问题。一开始的两点可以帮助解决这个问题。