首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python查找颜色的色调?

用Python查找颜色的色调?
EN

Stack Overflow用户
提问于 2012-06-16 10:08:52
回答 3查看 2.8K关注 0票数 1

如果你有一个表格,你输入了十六进制的颜色代码

代码语言:javascript
复制
FFFFFF

你将如何确定它们的色调?比如青色,橙色,等等?

所以如果有人输入了

代码语言:javascript
复制
#FF8000

该色调将打印在页面上,显示为橙色。

如果可能的话,您也可以解释一下这是如何工作的吗?或者把我链接到能解释它的东西上?

在我的python主脚本中输入这段代码可以转换成HSV吗?

代码语言:javascript
复制
        #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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-16 10:13:02

请参阅colorsys

基本上,它是这样工作的:

代码语言:javascript
复制
>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
票数 3
EN

Stack Overflow用户

发布于 2012-06-16 10:10:54

我不确定有没有一种简单的算法来解决这个问题,从而得到准确和描述性的颜色名称。我认为需要某种形式的查询。

除非你已经访问了十六进制代码/描述的数据库,否则一种方法是使用字典,其中你的键将是你的十六进制代码,值将是相应的描述。您可以查找十六进制代码并显示相应的颜色描述。

您可以从任意数量的专门针对该排序类型的颜色信息的网页(如Hexadecimal Color Code Chips Table (Hue at 10° of separation)或this Hexadecimal Color Codes )中找到字典的值

尽管有大量的十六进制代码,但我不确定您自己从头开始构建这个代码是否可行。

票数 1
EN

Stack Overflow用户

发布于 2012-06-16 10:46:37

使用Tools\pynche中的文件webcolors.txt,您可以创建自己的function,它将返回传递的十六进制值的颜色名称:

代码语言:javascript
复制
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'))

输出:

代码语言:javascript
复制
Yellow
color not found
White
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11060227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档