ホームページ > ウェブフロントエンド > CSSチュートリアル > PythonでRGBカラーを英語のカラー名に変換する方法?

PythonでRGBカラーを英語のカラー名に変換する方法?

Patricia Arquette
リリース: 2024-10-30 15:08:02
オリジナル
1089 人が閲覧しました

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

Python で RGB カラーを英語のカラー名に変換する

RGB 値のタプルが与えられた場合、それを人間の色名に変換するとよいでしょう。読みやすい英語の色名。 Python を使用してこれを実現するにはどうすればよいですか?

解決策

RGB カラーを対応する英語のカラー名に変換するには、Webcolors ライブラリの使用を検討してください。これは rgb_to_name() 関数を提供します。この関数は RGB トリプレットを入力として受け取り、一致するものが存在する場合は正規化された色の名前を返します。

<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>
ログイン後にコピー

最も近い色の名前

完全に一致するものが見つからない場合は、次のコードを使用して最も近い色の名前を見つけることができます:

<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>
ログイン後にコピー

完全な関数

両方のケースに対処するには、実際の最も近い色の名前を返す関数を定義できます。

<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>
ログイン後にコピー

使用例

<code class="python">color = (119, 172, 152)
actual_name, closest_name = get_colour_name(color)
print("Actual:", actual_name, ", Closest:", closest_name)</code>
ログイン後にコピー

出力

実際: なし、最も近い: cadetblue

以上がPythonでRGBカラーを英語のカラー名に変換する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート