首页 > web前端 > css教程 > 正文

如何在 Python 中将 RGB 颜色元组转换为英文颜色名称?

Linda Hamilton
发布: 2024-10-30 13:37:03
原创
545 人浏览过

How to Convert an RGB Color Tuple to an English Color Name in Python?

在 Python 中将 RGB 颜色转换为英文颜色名称

您想要将 RGB 颜色元组转换为颜色名称,例如 'yellow ' 或 'blue'。

考虑以下代码:

<code class="python">import Image
im = Image.open("test.jpg")
n, color = max(im.getcolors(im.size[0]*im.size[1]))
print color
# (119, 172, 152)</code>
登录后复制

此代码从图像中提取主色并将其存储为元组。如何在 Python 中将此元组转换为颜色名称?

解决方案:

webcolors 包提供了一个名为 rgb_to_name() 的有用函数:

rgb_to_name(rgb_triplet, spec='css3')
登录后复制

此函数将整数 RGB 值的三元组转换为指定颜色规范(例如“css3”)内相应的颜色名称。例如:

<code class="python">import webcolors
rgb_to_name((0, 0, 0)) # 'black'</code>
登录后复制

要查找与给定 RGB 元组最接近的颜色名称,您可以使用如下所示的自定义函数:

<code class="python">import math
import webcolors

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())]</code>
登录后复制

然后您可以使用以下函数检索实际颜色名称(如果存在)和最接近的匹配名称:

<code class="python">def get_colour_name(requested_colour):
    try:
        closest_name = actual_name = webcolors.rgb_to_name(requested_colour)
    except ValueError:
        closest_name = closest_colour(requested_colour)
        actual_name = None
    return actual_name, closest_name</code>
登录后复制

使用此函数,您可以获得给定 RGB 元组的精确颜色名称或最接近的近似值。

以上是如何在 Python 中将 RGB 颜色元组转换为英文颜色名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板