【Python】webcolorsによる色名・カラーコードの変換

【Python】webcolorsによる色名・カラーコードの変換 プログラミング

「カラー名からカラーコードを取得したい」
「RGBからカラー名を取得したい」
「Pythonでカラーコードを扱いたい」

このような場合には、webcolorsライブラリが利用できます。

本記事の内容

  • webcolorsとは?
  • webcolorsのシステム要件
  • webcolorsのインストール
  • webcolorsの動作確認

それでは、上記に沿って解説していきます。

webcolorsとは?

webcolorsは、HTMLやCSSで定義された色名や色値のフォーマットを扱うためのライブラリです。

簡単に説明すると、「blue」を「#0000FF」(16進数カラーコード)に変換する機能があります。
「#0000FF」を「blue」に変換することも可能です。

もちろん、RGBにも変換できます。
webcolorsでは、このようなことができるということです。

「色DBと便利関数がwebcolorsに含まれている」
このようにwebcolorsを捉えれば、わかりやすいかもしれません。

以上、webcolorsについてを説明しました。
次は、webcolorsのシステム要件を確認します。

webcolorsのシステム要件

現時点(2021年10月)でのwebcolorsの最新バージョンは、1.11.1となります。
この最新バージョンは、2020年1月18日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となります。

  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8

setup.pyには、次のように記述されています。

Python 3.5以降なら、OKということでしょう。
実際、次のバージョンで動作確認済です。

>python -V
Python 3.9.7

よって、webcolorsのシステム要件はPython 3.5以降にだけ注意すれば問題ありません。

以上、webcolorsのシステム要件を説明しました。
次は、webcolorsをインストールします。

webcolorsのインストール

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list 
Package    Version 
---------- ------- 
pip        21.3 
setuptools 58.2.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、webcolorsのインストールです。
webcolorsのインストールは、以下のコマンドとなります。

pip install webcolors

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package    Version 
---------- ------- 
pip        21.3 
setuptools 58.2.0 
webcolors  1.11.1

依存関係のあるパッケージは、ありません。
よって、webcolorsは既存環境にも容易に導入可能です。

以上、webcolorsのインストールについて説明しました。
最後は、webcolorsの動作確認を行います。

webcolorsの動作確認

次のページから、よく使いそうな関数をピックアップしています。
https://webcolors.readthedocs.io/en/1.11.1/contents.html

import webcolors 

name = webcolors.rgb_to_name((255, 0, 255)) 
print(name) 

name = webcolors.hex_to_name('#FFFFFF') 
print(name) 

hex = webcolors.name_to_hex('navy') 
print(hex) 

rgb = webcolors.hex_to_rgb('#ff0000') 
print(rgb) 

rgb_percent = webcolors.hex_to_rgb_percent('#ff0000') 
print(rgb_percent)

上記を実行した結果は、以下。

magenta 
white 
#000080 
IntegerRGB(red=255, green=0, blue=0) 
PercentRGB(red='100%', green='0%', blue='0%')

コードと実行結果を見れば、関数の動きはわかるでしょう。
他にも関数はあるので、確認してみてください。

以上、webcolorsの動作確認の説明でした。

タイトルとURLをコピーしました