Maison > interface Web > tutoriel CSS > Comment convertir la couleur RVB en nom de couleur anglais en Python ?

Comment convertir la couleur RVB en nom de couleur anglais en Python ?

Patricia Arquette
Libérer: 2024-10-30 15:08:02
original
1107 Les gens l'ont consulté

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

Convertir la couleur RVB en nom de couleur anglais en Python

Étant donné un tuple de valeurs RVB, vous souhaiterez peut-être le convertir en un humain- nom de couleur anglais lisible. Comment cela peut-il être accompli en utilisant Python ?

Solution

Pour convertir une couleur RVB en son nom de couleur anglais correspondant, pensez à utiliser la bibliothèque webcolors. Il propose la fonction rgb_to_name(), qui prend un triplet RVB en entrée et renvoie le nom de couleur normalisé si une correspondance existe.

Exemple

<code class="python">import webcolors

# Get RGB color from an image
im = Image.open("test.jpg")
n, color = max(im.getcolors(im.size[0]*im.size[1]))

# Convert to English color name
color_name = webcolors.rgb_to_name(color, spec='css3')
print(color_name)  # Output: 'cadetblue'</code>
Copier après la connexion

Nom de couleur le plus proche

Si une correspondance parfaite n'est pas trouvée, vous pouvez trouver le nom de couleur le plus proche en utilisant le code suivant :

<code class="python">def closest_colour(requested_colour):
    # Iterate through RGB space and calculate Euclidian distance
    min_distances = {}
    for hex_code, name in webcolors.CSS3_HEX_TO_NAMES.items():
        r, g, b = webcolors.hex_to_rgb(hex_code)
        dist = sum((n - c for n, c in zip(requested_colour, (r, g, b))))**2
        min_distances[dist] = name

    # Return the closest color name
    return min_distances[min(min_distances.keys())]</code>
Copier après la connexion

Fonction complète

Pour gérer les deux cas, vous pouvez définir une fonction qui renvoie les noms de couleurs réels et les plus proches :

<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>
Copier après la connexion

Exemple d'utilisation

<code class="python">color = (119, 172, 152)
actual_name, closest_name = get_colour_name(color)
print("Actual:", actual_name, ", Closest:", closest_name)</code>
Copier après la connexion

Sortie

Réel : aucun, le plus proche : cadetblue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal