Maison  >  Article  >  interface Web  >  Comment convertir les valeurs de couleur RVB en noms de couleurs anglais en Python ?

Comment convertir les valeurs de couleur RVB en noms de couleurs anglais en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 23:08:30999parcourir

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

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

Lorsque vous traitez des images ou des manipulations de couleurs en Python, vous pouvez rencontrer des situations où vous devez convertir un tuple de couleur RVB en son nom de couleur anglais correspondant. Malheureusement, Python ne fournit pas nativement un moyen simple de le faire.

Cependant, grâce à la bibliothèque webcolors, vous pouvez facilement accomplir cette tâche. webcolors propose la fonction rgb_to_name(), qui prend un triplet de valeurs RVB en entrée et renvoie le nom de couleur CSS3 le plus proche. Par exemple :

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

Si vous souhaitez trouver le nom de couleur anglais le plus similaire pour une valeur RVB donnée, vous pouvez utiliser le code suivant :

<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>

Cette fonction mesure l'Euclide distance entre la couleur RVB donnée et toutes les couleurs CSS3, renvoyant le nom de la couleur avec la plus petite distance.

Pour récupérer réellement le nom de la couleur, vous pouvez l'utiliser comme suit :

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

Dans Dans cet exemple, le résultat est « cadetblue », qui est le nom de la couleur la plus proche de (119, 172, 152) dans l'espace colorimétrique CSS3.

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!

Déclaration:
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