Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie konvertiere ich ein RGB-Farbtupel in Python in einen englischen Farbnamen?

Linda Hamilton
Freigeben: 2024-10-30 13:37:03
Original
545 Leute haben es durchsucht

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

RGB-Farbe in englischen Farbnamen in Python konvertieren

Sie möchten ein RGB-Farbtupel in einen Farbnamen wie „Gelb“ umwandeln ' oder 'blau'.

Betrachten Sie den folgenden Code:

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

Dieser Code extrahiert die extrahiert die dominante Farbe aus einem Bild und speichert sie als Tupel. Wie können Sie dieses Tupel in Python in einen Farbnamen umwandeln?

Lösung:

Das Webcolors-Paket bietet eine nützliche Funktion namens rgb_to_name():

rgb_to_name(rgb_triplet, spec='css3')
Nach dem Login kopieren

Diese Funktion konvertiert ein Drei-Tupel ganzzahliger RGB-Werte in den entsprechenden Farbnamen innerhalb einer angegebenen Farbspezifikation (z. B. 'css3'). Zum Beispiel:

<code class="python">import webcolors
rgb_to_name((0, 0, 0)) # 'black'</code>
Nach dem Login kopieren

Um den Farbnamen zu finden, der einem bestimmten RGB-Tupel am nächsten kommt, können Sie eine benutzerdefinierte Funktion wie die folgende verwenden:

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

Sie können dann die folgende Funktion verwenden um sowohl den tatsächlichen Farbnamen, falls vorhanden, als auch den am besten passenden Namen abzurufen:

<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

Mit dieser Funktion können Sie sowohl den genauen Farbnamen als auch die nächste Näherung für a erhalten gegebenes RGB-Tupel.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein RGB-Farbtupel in Python in einen englischen 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