タイトルの通り。python には qrcode
という名前通りのパッケージが存在しており、これを使ってQRコードを作成してみる。
環境
python は anyenv + pyenv でインストールしたものを使用。
% sw_vers ProductName: macOS ProductVersion: 12.6.3 BuildVersion: 21G419 % python --version Python 3.11.3 % pip --version pip 22.3.1 from /Users/gumfum/.anyenv/envs/pyenv/versions/3.11.3/lib/python3.11/site-packages/pip (python 3.11)
インストール
pip コマンドでインストールできる。
% pip install qrcode
使い方
qr
コマンドに、QRコードを生成したい文字列を指定し、ファイルに出力する。
% qr "test" > test.png
コマンドを実行すると、以下のようなファイルが作成される。
基本的な使い方はこれだけ。
オプション
QRCode
クラスを利用することで、生成するQRコードのオプションを指定することができる。
import qrcode qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data('test') qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white")
version
で指定しているのはQRコードのバージョン番号と呼ばれるもので、大きいほど多くの情報を格納することができる。詳細はデンソーウェーブが公開している以下のページを参照。
www.qrcode.com
error_correction
には誤り訂正の種類を指定する。誤り訂正の種類には4種類あり、訂正能力が高くなるほど必要なデータ量が大きくなる。こちらも詳細はデンソーウェーブが公開している以下のページを参照。
www.qrcode.com
box_size
border
はそれぞれQRコード内の各マスの1辺のピクセル数を指定する。デフォルトは10となっており、これより小さな値を指定することで、同じバージョン番号のQRコードであってもより小さいサイズで出力させることが可能になる。border
は外周の余白のピクセル数を指定できる。デフォルトは4 となっており、指定できる最小の値になっている。
fill_color
back_color
はそれぞれピクセルの色、背景の色を指定ができる。black
white
red
のようなCSSでも指定できる名前での記述のほか、16進コードで指定することもできる。
プロジェクトページのリンク
上記の他にも、グリッドの形や塗りつぶし方を変えるオプション等が用意されている。どちらも同じ内容ではあるが、GitHubの方が画像が添付されているので分かりやすそう。