👨💻
Pythonで簡単に2次元バーコード(QRコード)を作成する方法
はじめに
QRコードは、日常生活でよく見かける便利なツールです。この記事では、Pythonを使って簡単にQRコードを生成する方法を紹介します。QRコードを生成するために、qrcodeライブラリを使用します。このライブラリはシンプルで使いやすく、わずかなコードでQRコードを作成できます。
必要なライブラリのインストール
まず、QRコードを生成するために必要なライブラリをインストールします。qrcodeライブラリと、画像を扱うためにpillowライブラリをインストールします。ターミナル(またはコマンドプロンプト)で以下のコマンドを実行してください。
pip install qrcode[pil]
QRコードを生成するPythonコード
ライブラリのインストールが完了したら、実際にQRコードを生成するためのコードを書きます。以下のコードを使ってQRコードを生成し、画像として保存します。
import qrcode
from PIL import Image
# QRコードに含めるデータを指定します
data = "https://www.example.com"
# QRコードを生成します
qr = qrcode.QRCode(
version=1, # バージョンはQRコードのサイズを指定します(1から40まで)
error_correction=qrcode.constants.ERROR_CORRECT_L, # エラー修正レベル(L, M, Q, H)
box_size=10, # QRコードの各ボックス(ドット)のサイズ
border=4, # QRコードの境界の幅
)
# データをQRコードに追加します
qr.add_data(data)
qr.make(fit=True)
# QRコードの画像を生成します
img = qr.make_image(fill='black', back_color='white')
# QRコードの画像を保存します
img.save("qrcode.png")
# 画像を表示します
img.show()
#コードの説明
インポート
import qrcode
from PIL import Image
まず、qrcodeライブラリと画像処理のためのPIL(Python Imaging Library)をインポートします。
データの設定
data = "https://www.example.com"
QRコードに含めたいデータ(この場合はURL)を設定します。
QRコードの生成
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
ここでは、QRコードのバージョン、エラー修正レベル、各ボックスのサイズ、境界の幅を設定しています。
- version: QRコードのバージョンを指定します。バージョンが高いほどQRコードのサイズが大きくなり、より多くのデータを含むことができます(1から40まで)。
- error_correction: エラー修正レベルを指定します。エラー修正レベルが高いほど、QRコードの一部が破損しても読み取れる可能性が高くなります。
- qrcode.constants.ERROR_CORRECT_L: 7%のエラー修正
- qrcode.constants.ERROR_CORRECT_M: 15%のエラー修正
- qrcode.constants.ERROR_CORRECT_Q: 25%のエラー修正
- qrcode.constants.ERROR_CORRECT_H: 30%のエラー修正
- box_size: QRコードの各ボックス(ドット)のサイズを指定します。
- border: QRコードの周りの余白の幅を指定します。
データの追加とQRコードの生成
qr.add_data(data)
qr.make(fit=True)
データをQRコードに追加し、最適なサイズに調整します。
QRコード画像の生成と保存
img = qr.make_image(fill='black', back_color='white')
img.save("qrcode.png")
QRコードの画像を生成し、指定した名前で保存します。
画像の表示
img.show()
生成されたQRコード画像を表示します。
まとめ
以上のコードを使って、簡単にQRコードを生成することができます。Pythonとqrcodeライブラリを活用すれば、様々な用途に合わせたQRコードを手軽に作成できるので、ぜひ試してみてください。質問やコメントがあれば、ぜひお寄せください!
Discussion