
PythonでサクッとQRコード作り
WebサイトからQRコードを作成することもできますが、Pythonを使えばコマンドラインやコード記述で簡単に作成できます。
今回ご紹介する内容は、私が資料に貼り付けるQRコードを一気に作るため作成した内容の一部です。もしどなたかのためになれば何よりです。Pythonを使ってQRコードを生成する方法を、備忘録として残します。
■必要なモジュール
QRコード生成には、qrcodeモジュールが必要です。以下のコマンドでインストールできます。
pip install qrcode
■コマンドプロンプトから生成
qrcodeモジュールをインストールされている場合、コマンドラインからQRコードを作れます。ちょっと作りたいだけなら、この方法が手っ取り早いです。
記述方法 : qr "QRコードにしたい文字列" > ファイル名
qr "https://note.com/info/" > qrcode.png
※コマンド実行前に『 cd %USERPROFILE%\desktop 』と入力し、ディレクトリを移動しておくと、デスクトップ上にQRコードが保存されます。

◆Pythonで記述する場合
より細かい設定やデザインをしたい場合は、Pythonコードで生成できます。
基本的なコード
import qrcode
img = qrcode.make('QRコードにしたい文字列') #
img.save("QRコード.png") #pngファイルに保存
描画色、背景色、外枠の変更
qrcodeモジュールには、QRコードのデザインを調整するためのオプションが用意されています。
文字による色指定
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
#box_size : ドット1つぶんのサイズ
#border : 外枠のサイズ
qr.add_data('https://note.com/info/') #データ追加
qr.make(fit=True) #QR作成
img = qr.make_image(fill_color="blue", back_color="white") #描画色と背景色 文字で変更
# black white blue red green pinkなどなど
img.save("qrcode.png")

RGBによる色指定
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('https://note.com/info/') #データ追加
qr.make(fit=True) #QR作成
img = qr.make_image(fill_color=(255, 0, 0), back_color=(0, 0, 255)) #描画色と背景色 RGB指定
img.save("qrcode.png")

◆リストからQRコードを大量生産する
QRコードにしたい文字を書いたテキストファイルから、一気にQRコードを作成するサンプルです。たくさん作らないといけないときに使えます。
用意するもの:
QRList.txt (QRコードにしたい文字列を書いたもの)
https://note.com/info/
https://note.com/info/1
https://note.com/info/2
…
https://note.com/info/99
import qrcode
#ファイル読み込み
with open("QRList.txt",mode="r",encoding="utf-8") as f:
qrlists = f.readlines()
#リストからQR生成
for i, qr in enumerate(qrlists):
img = qrcode.make(qr)
img.save(f"qrcode_{i:0{3}d}.png")
結果は『qrcode_000.png ・・・ qrcode_099.png 』の100個QRコードが、一気に出来上がります。
うっかりデスクトップでプログラムを起動させると、大変なことになります。

さらに詳しく
qrcodeモジュールには、他にも様々なオプションがあります。詳細は以下の公式ドキュメントを参照してください。
qrcode documentation: https://pypi.org/project/qrcode/