Home  >  Article  >  Web Front-end  >  How do I convert RGB color values to English color names in Python?

How do I convert RGB color values to English color names in Python?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 23:08:30999browse

How do I convert RGB color values to English color names in Python?

How to Convert RGB Color to English Color Name in Python

When dealing with images or color manipulation in Python, you may encounter situations where you need to convert an RGB color tuple to its corresponding English color name. Unfortunately, Python doesn't natively provide a simple way to do this.

However, thanks to the webcolors library, you can easily accomplish this task. webcolors offers the rgb_to_name() function, which takes a 3-tuple of RGB values as input and returns the nearest CSS3 color name. For instance:

<code class="python">import webcolors
rgb_color = (119, 172, 152)
color_name = webcolors.rgb_to_name(rgb_color)
print(color_name)  # Outputs: 'cadetblue'</code>

If you want to find the most similar English color name for a given RGB value, you can use the following code:

<code class="python">def closest_color(rgb_color):
    min_distance = float('inf')
    closest_name = None

    for hex_code, color_name in webcolors.CSS3_HEX_TO_NAMES.items():
        r, g, b = webcolors.hex_to_rgb(hex_code)
        r_diff = (r - rgb_color[0]) ** 2
        g_diff = (g - rgb_color[1]) ** 2
        b_diff = (b - rgb_color[2]) ** 2
        distance = r_diff + g_diff + b_diff

        if distance < min_distance:
            min_distance = distance
            closest_name = color_name

    return closest_name</code>

This function measures the Euclidean distance between the given RGB color and all CSS3 colors, returning the color name with the smallest distance.

To actually retrieve the color name, you can use it as follows:

<code class="python">color_name = closest_color((119, 172, 152))
print(color_name)  # Outputs: 'cadetblue'</code>

In this example, the result is 'cadetblue,' which is the name of the closest color to (119, 172, 152) in the CSS3 color space.

The above is the detailed content of How do I convert RGB color values to English color names in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn