我正在使用这个功能
def closest_colour(requested_colour):
min_colours = {}
for key, name in webcolors.css3_hex_to_names.items():
r_c, g_c, b_c = webcolors.hex_to_rgb(key)
rd = (r_c - requested_colour[0]) ** 2
gd = (g_c - requested_colour[1]) ** 2
bd = (b_c - requested_colour[2]) ** 2
min_colours[(rd + gd + bd)] = name
return min_colours[min(min_colours.keys())]
我正在使用 Webcolor 1.11.1 Python 3.8.8,并且我收到此错误消息
for key, name in webcolors.css21_hex_to_names.items():
AttributeError:模块“webcolors”没有属性“css21_hex_to_names”
幸运的是,我找到了解决方案。 我使用了这个 webcolors.CSS3_HEX_TO_NAMES 而不是 webcolors.css21_hex_to_names。 CSS3_HEX_TO_NAMES 大写字母
我在 Python 3.10 中使用
webcolors
版本 == '24.8.0'
,它发生了更改,并且 CSS3_HEX_TO_NAMES
不再可访问。
这是更新的代码,将
CSS3_HEX_TO_NAMES
替换为 webcolors.names("css3")
import webcolors
def closest_colour(requested_colour):
min_colours = {}
for name in webcolors.names("css3"):
r_c, g_c, b_c = webcolors.name_to_rgb(name)
rd = (r_c - requested_colour[0]) ** 2
gd = (g_c - requested_colour[1]) ** 2
bd = (b_c - requested_colour[2]) ** 2
min_colours[(rd + gd + bd)] = name
return min_colours[min(min_colours.keys())]