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