使用Python查找颜色的色调?
如果你有一个表格,里面有十六进制的颜色代码使用Python查找颜色的色调?,python,Python,如果你有一个表格,里面有十六进制的颜色代码 FFFFFF 你如何确定它们的色调?比如青色、橙色等等 所以如果有人输入 #FF8000 色调会印在页面上,显示为橙色 如果可能的话,你能解释一下它是如何工作的吗?或者把我和解释它的东西联系起来 在我的主python脚本中输入这段代码,以便能够转换为HSV,这是否合理 #RGB to HSV start ONE_THIRD = 1.0/3.0 ONE_SIXTH = 1.0/6.0 TWO_THIRD = 2
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
我不确定有没有一种简单的算法来解决这个问题,从而得出准确的和描述性的颜色名称。我认为需要进行某种查找 除非您已经可以访问十六进制代码/描述数据库,否则一种方法是使用字典,其中键是十六进制代码,值是相应的描述,这是一种方法。您可以查找十六进制代码并显示相应的颜色描述 您可以从任意数量的专门处理此类颜色信息的网页(如或此)中找到词典的值
尽管有大量的十六进制代码,但我不确定您自己从头开始构建它的可行性。我不确定是否有一种简单的算法方法来解决这一问题,从而得出准确和描述性的颜色名称。我认为需要进行某种查找 除非您已经可以访问十六进制代码/描述数据库,否则一种方法是使用字典,其中键是十六进制代码,值是相应的描述,这是一种方法。您可以查找十六进制代码并显示相应的颜色描述 您可以从任意数量的专门处理此类颜色信息的网页(如或此)中找到词典的值 尽管有大量的十六进制代码,但我不确定您自己从头开始构建它的可行性。请参阅 基本上,它是这样工作的:
>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
请看
基本上,它是这样工作的:
>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
使用Tools\pynche中的WebColor.txt文件,您可以创建自己的函数,该函数将返回传递的十六进制值的颜色名称:
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
使用Tools\pynche中的WebColor.txt文件,您可以创建自己的函数,该函数将返回传递的十六进制值的颜色名称:
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
检查这个:我的理解是你想要一个从十六进制代码到描述性颜色术语的映射,是正确的,还是我误解了你的意图?请看我下面的评论。没有理由不能将库中的函数直接放在代码中,但是,当您可以导入库并调用它时,为什么要这样做,正如我在下面向您展示的那样?更干净。@user37078,这样我就可以精确定位并找出每件事的作用。如果我导入了一个文件,我必须同时读取这两个文件。我不会将其转换为其中列出的任何其他值。我想我只是想让自己放松一下。@Levon是的,差不多。唯一的问题是,我只想要基本的。我已经有了红色、绿色和蓝色。我只是想指出,如果你加上绿色,红色什么时候不再是红色,它会变成橙色。蓝色也一样。如果你加入足够的红色,但不是太多,它会变成洋红色。或者,如果你得到一个良好的平衡,它将是紫色的。我只想指出这些事情。基本颜色,如黄色、橙色、洋红、紫色、青色等。请检查:我的理解是,您希望从十六进制代码映射到描述性颜色术语,这是正确的,还是我误解了您的意图?请参阅下面的评论。没有理由不能将库中的函数直接放在代码中,但是,当您可以导入库并调用它时,为什么要这样做,正如我在下面向您展示的那样?更干净。@user37078,这样我就可以精确定位并找出每件事的作用。如果我导入了一个文件,我必须同时读取这两个文件。我不会将其转换为其中列出的任何其他值。我想我只是想让自己放松一下。@Levon是的,差不多。唯一的问题是,我只想要基本的。我已经有了红色、绿色和蓝色。我只是想指出,如果你加上绿色,红色什么时候不再是红色,它会变成橙色。蓝色也一样。如果你加入足够的红色,但不是太多,它会变成洋红色。或者,如果你得到一个良好的平衡,它将是紫色的。我只想指出这些事情。基本颜色,如黄色、橙色、洋红、紫色、青色等…将此代码放在单独的python脚本中是否可行?这看起来很混乱,我将在原始问题中编辑代码。很难在注释中读取大量代码转储,但看起来您正在尝试创建一个函数,该函数的功能与包含的python库几乎相同。
你为什么要费心呢?只是为了让我能精确地找出每件事的作用。如果我导入了一个文件,我必须同时读取这两个文件。我不会将其转换为其中列出的任何其他值。我想只是让自己放松一下。你到底想做什么?您对python和编程一般来说是新手吗?我的建议是习惯于将代码放在不同的文件中,这是程序员生活中的一个实际需要。将此代码放在单独的python脚本中是否合理?这看起来很混乱,我将在我的原始问题中编辑代码。很难在注释中读取大量代码转储,但看起来您正在尝试创建一个函数,该函数的功能与包含的python库几乎相同。你为什么要费心呢?只是为了让我能精确地找出每件事的作用。如果我导入了一个文件,我必须同时读取这两个文件。我不会将其转换为其中列出的任何其他值。我想只是让自己放松一下。你到底想做什么?您对python和编程一般来说是新手吗?我的建议是习惯于在不同的文件中使用代码,这是程序员生活中的实际需要。如果你问我是否已经能够将FF0000描述为红色,或FF00描述为黄色,那么是的。我确实有,是的,基本颜色很简单,我认为棘手的部分是不同等级/色调的颜色,不是吗?是的。在过去的三天里,这些等级/色调让我感到困惑。但我只是想确定问题是什么。好吧,如果你问我是否已经能够将FF0000描述为红色,或FF00描述为黄色,那么是的。我确实有,是的,基本颜色很简单,我认为棘手的部分是不同等级/色调的颜色,不是吗?是的。在过去的三天里,这些等级/色调让我感到困惑。但我只是想确定问题是什么。