首頁  >  文章  >  web前端  >  如何在Python中將RGB顏色值轉換為英文顏色名稱?

如何在Python中將RGB顏色值轉換為英文顏色名稱?

Linda Hamilton
Linda Hamilton原創
2024-10-30 23:08:30999瀏覽

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

如何在Python中將RGB顏色轉換為英文顏色名稱

在Python中處理圖像或顏色操作時,你可能會遇到到以下情況:您需要將RGB 顏色元組轉換為其對應的英文顏色名稱。不幸的是,Python 本身並沒有提供簡單的方法來執行此操作。

但是,借助 webcolors 庫,您可以輕鬆完成此任務。 webcolors 提供了 rgb_to_name() 函數,該函數將 RGB 值的三元組作為輸入並傳回最接近的 CSS3 顏色名稱。例如:

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

如果你想找到給定RGB 值最相似的英文顏色名稱,可以使用以下代碼:

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

此函數測量歐幾裡得給定的RGB 顏色和所有CSS3 顏色之間的距離,傳回距離最小的顏色名稱。

要實際檢索顏色名稱,您可以將其用作如下所示:

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

在此示例中,結果為“cadetblue”,它是CSS3 顏色空間中最接近(119, 172, 152) 的顏色的名稱。

以上是如何在Python中將RGB顏色值轉換為英文顏色名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn