Heim > Web-Frontend > CSS-Tutorial > Wie konvertiere ich RGB-Farben in Python in englische Farbnamen?

Wie konvertiere ich RGB-Farben in Python in englische Farbnamen?

Patricia Arquette
Freigeben: 2024-10-30 15:08:02
Original
1106 Leute haben es durchsucht

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

RGB-Farbe in englischen Farbnamen in Python konvertieren

Gegeben ein Tupel von RGB-Werten, möchten Sie es vielleicht in einen menschlichen Farbnamen umwandeln. lesbarer englischer Farbname. Wie kann dies mit Python erreicht werden?

Lösung

Um eine RGB-Farbe in den entsprechenden englischen Farbnamen zu konvertieren, sollten Sie die Verwendung der Webcolors-Bibliothek in Betracht ziehen. Es bietet die Funktion rgb_to_name(), die ein RGB-Triplett als Eingabe verwendet und den normalisierten Farbnamen zurückgibt, wenn eine Übereinstimmung vorliegt.

Beispiel

<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>
Nach dem Login kopieren

Name der nächstgelegenen Farbe

Wenn keine perfekte Übereinstimmung gefunden wird, können Sie den Namen der nächstgelegenen Farbe mithilfe des folgenden Codes finden:

<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>
Nach dem Login kopieren

Vollständige Funktion

Um beide Fälle zu behandeln, können Sie eine Funktion definieren, die die tatsächlichen und nächstgelegenen Farbnamen zurückgibt:

<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>
Nach dem Login kopieren

Beispielverwendung

<code class="python">color = (119, 172, 152)
actual_name, closest_name = get_colour_name(color)
print("Actual:", actual_name, ", Closest:", closest_name)</code>
Nach dem Login kopieren

Ausgabe

Aktuell: Keine, Am nächsten: cadetblue

Das obige ist der detaillierte Inhalt vonWie konvertiere ich RGB-Farben in Python in englische Farbnamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage