ホームページ  >  記事  >  ウェブフロントエンド  >  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 値の 3 タプルを入力として受け取り、最も近い CSS3 カラー名を返す rgb_to_name() 関数を提供します。例:

<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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。