2024-10-04 11:33:59 发布
网友
我想写一些代码,可以采取一个十六进制颜色,并准确猜测其主要,二级或三级颜色。在
例如,如果我输入#0000FF,或#002FA7,或#004950,它将返回blue。(我不希望它返回AquaBlue或Cobolt或{},而是简单的颜色blue)。在
#0000FF
#002FA7
#004950
blue
AquaBlue
Cobolt
您可以使用简单的python函数对其进行分类。像黑白(#000000和#FFFFFF)这样的颜色,您必须根据您的需求修改函数。因为它为rgb保存了相同的值。在
#000000
#FFFFFF
rgb
函数将hex转换为rgb值,取最大值并根据该值进行分类。在
hex
def hex_to_rgb(value): value = value.lstrip('#') lv = len(value) colors = tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3)) pri_colrs = ['Red','Green','Blue'] return pri_colrs[colors.index(max(colors))]
结果
这是一个开始-
假设字符串c = '#004950'是一个十六进制的RGB颜色。在
c = '#004950'
定义一些切片以分隔rgb值
>>> red = slice(1,3) >>> blue = slice(3,5) >>> green = slice(5, 7)
你需要找到震级-我将使用一个函数并将其映射到rgb值
现在我们需要知道哪一个的震级最高:
>>> # a couple more helpers >>> from operator import itemgetter >>> color = itemgetter(0) >>> value = itemgetter(1) >>> >>> colors = zip(['red', 'green', 'blue'], rgb) >>> colors = sorted(colors, key = value) >>> tertiary, secondary, primary = map(color, colors) >>> primary, secondary, tertiary ('blue', 'green', 'red') >>>
您可以使用简单的python函数对其进行分类。像黑白(
#000000
和#FFFFFF
)这样的颜色,您必须根据您的需求修改函数。因为它为rgb
保存了相同的值。在函数将
hex
转换为rgb
值,取最大值并根据该值进行分类。在结果
^{pr2}$这是一个开始-
假设字符串
c = '#004950'
是一个十六进制的RGB颜色。在定义一些切片以分隔rgb值
你需要找到震级-我将使用一个函数并将其映射到rgb值
^{pr2}$现在我们需要知道哪一个的震级最高:
相关问题 更多 >
编程相关推荐