Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah saya menukar nilai warna RGB kepada nama warna Inggeris dalam Python?

Bagaimanakah saya menukar nilai warna RGB kepada nama warna Inggeris dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 23:08:30999semak imbas

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

Cara Menukar Warna RGB kepada Nama Warna Bahasa Inggeris dalam Python

Apabila berurusan dengan imej atau manipulasi warna dalam Python, anda mungkin menghadapi situasi di mana anda perlu menukar tuple warna RGB kepada nama warna Inggeris yang sepadan. Malangnya, Python tidak menyediakan cara yang mudah untuk melakukan ini.

Walau bagaimanapun, terima kasih kepada perpustakaan webcolors, anda boleh menyelesaikan tugas ini dengan mudah. webcolors menawarkan fungsi rgb_to_name(), yang mengambil 3-tuple nilai RGB sebagai input dan mengembalikan nama warna CSS3 yang terdekat. Contohnya:

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

Jika anda ingin mencari nama warna Inggeris yang paling serupa untuk nilai RGB tertentu, anda boleh menggunakan kod berikut:

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

Fungsi ini mengukur Euclidean jarak antara warna RGB yang diberikan dan semua warna CSS3, mengembalikan nama warna dengan jarak terkecil.

Untuk mendapatkan semula nama warna, anda boleh menggunakannya seperti berikut:

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

Dalam contoh ini, hasilnya ialah 'cadetblue,' iaitu nama warna yang paling hampir dengan (119, 172, 152) dalam ruang warna CSS3.

Atas ialah kandungan terperinci Bagaimanakah saya menukar nilai warna RGB kepada nama warna Inggeris dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn