如果你有一个用于输入十六进制颜色代码的表单
FFFFFF
你如何确定他们的色调?像青色,橙色等......?
所以,如果有人输入
#FF8000
色调将打印在橙色页面上。
如果可能的话,你能解释一下这是如何运作的吗?或者链接我解释它的东西?
在我的主python脚本中输入此代码以便能够转换为HSV是否合理?
#RGB to HSV start
ONE_THIRD = 1.0/3.0
ONE_SIXTH = 1.0/6.0
TWO_THIRD = 2.0/3.0
def rgb_to_hsv(r, g, b):
maxc = max(r, g, b)
minc = min(r, g, b)
v = maxc
if minc == maxc:
return 0.0, 0.0, v
s = (maxc-minc) / maxc
rc = (maxc-r) / (maxc-minc)
gc = (maxc-g) / (maxc-minc)
bc = (maxc-b) / (maxc-minc)
if r == maxc:
h = bc-gc
elif g == maxc:
h = 2.0+rc-bc
else:
h = 4.0+gc-rc
h = (h/6.0) % 1.0
return h, s, v
#RGB to HSV end
答案 0 :(得分:3)
答案 1 :(得分:1)
我不确定是否有一种简单的算法方法可以解决这个问题,以提出准确和描述性的颜色指定。我认为需要进行某种查询。
除非您已经可以访问十六进制代码/描述的数据库,否则一种方法是使用一个字典,其中您的密钥将是您的十六进制代码,值将是相应的描述是一种方法。您可以查找十六进制代码并显示相应的颜色描述。
您可以从专门针对该排序类型的颜色信息的任意数量的网页中找到您的字典的值,例如Hexadecimal Color Code Chips Table (Hue at 10° of separation)或此Hexadecimal Color Codes
虽然给出了大量的十六进制代码,但我不确定你是否可以从头开始构建它。
答案 2 :(得分:1)
使用Tools \ pynche中的文件webcolors.txt
,您可以创建自己的function
,它将返回传递的十六进制值的颜色名称:
with open ('Tools\pynche\webcolors.txt') as f:
color_dict={x.split()[1].strip():x.split()[0].strip() for x in f.readlines()[1:]}
color_dict['fetch']=lambda x:color_dict.get(x.lower(),'color not found')
print( color_dict['fetch']('#ffFF00') )
print( color_dict['fetch']('#AAdd00') )
print(color_dict['fetch']('#FFFFFF'))
输出:
Yellow
color not found
White