夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Pythonを使用して任意のテキストからQRコードを作成する

本日はPython枠です。

BlenderPythonになれてきたため、今回はQRコードを作成する実装を行います。

QRコードについて

QRコードは今では電子決済を含め日常生活の中で多く使用されていますが、もとはデンソーウェーブ社が開発した情報表示形式とその読み取り技術です。

www.denso-wave.com

 特徴として名称の権利を除いて技術そのものはオープンソースとして公開されており、世界中で広く使用されるようになりました。

 バーコードに比べ記録データの大容量化や高密度化、読み取りに対しての欠損個所の修復機能などにより日常生活に欠かせない技術です。

〇環境

・Windows11PC

・Anaconda Prompt(Anaconda3)

PythonQRコードを作成する

QRコードを使用するためにはqrcodeライブラリを使用します。

まずはAnaconda Promptを起動してqrcreatorという名前で仮想環境を構築します。

conda create -n qrcreator

次に仮想環境を有効化します。

conda activate qrcreator

最後にqrcodeライブラリをインストールします。

conda install -c conda-forge qrcode

以上で環境ができました。

次にPythonコードですが次のようになります。

import qrcode

# QRコードを生成したいテキスト
data = "テキスト"

# QRコードの生成
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4,
)
qr.add_data(data)
qr.make(fit=True)

# QRコードの描画と保存
img = qr.make_image(fill='black', back_color='white')
img.save('qrcode.png')

まずは本ブログのQRコードを生成します。

dataにhttps://redhologerbera.hatenablog.com/を入力し実行します。

python qrcretor.py

これによってスクリプトと同階層にqrcode.pngが生成されます。

生成されたコードはこちらになります。

こちらを読み込むと本ブログへと飛ぶことを確認できました。

実際にコードを生成している部分は次になります。

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4,
)
qr.add_data(data)
qr.make(fit=True)

QRCode()の引数は、QRコードのバージョン、QRコードの誤りレベル、コードの周囲のピクセルサイズを指定します。

ここでバージョンは1から40まであり、それぞれ1バージョンが上がるごとに4セルずつ保持できる情報量が上がります。

引数がnoneの場合は必要に応じて自動的に最小バージョンを選択します。

QRコードの誤りレベルとは、コードの欠落などによって欠損した場合の修復レベルを指し、ERROR_CORRECT_L(7%),ERROR_CORRECT_M(15%),ERROR_CORRECT_Q(25%),ERROR_CORRECT_H(30%)の設定ができます。

誤り訂正レベルが大きければ大きいほどQRコードのサイズも大きくなります。

以上でQRコードの生成ができました。

なおURL以外の情報を埋め込んだ場合でもスマートフォンをかざすことで内容を確認できます。

本日は以上です。