Python で QRコードを6パターン生成してみた(qrcode版)
このページでは、Python の qrcode ライブラリを使用して QRコードの画像を6パターン生成し、スマホで読み取った結果をまとめたものになります。
QRコードには、電話番号やメールアドレスも含められるようだったので、個人的に使いそうな6パターンを考えて試してみました。
※技術的な内容については、他のサイト等を参照してください。
QRコードや qrcode ライブラリについては、以下のサイトで解説されています。
【デンソーウェーブ】QRコードとは
https://www.denso-wave.com/ja/system/qr/fundamental/qrcode/qrc/
【QRコードドットコム】QRコードとは?
https://www.qrcode.com/about/
【PyPI】qrcode ライブラリ
https://pypi.org/project/qrcode/
サンプルパターン
今回は、以下の6パータンの QRコードの画像を作成し、スマホで読み取ってどういう動作をするか試してみました。
① 半角英数字のテキスト
② 半角+全角文字のテキスト
③ 電話番号(tel:~)
④ メールアドレス(mailto:~ 送信先)
⑤ URL(https://~ このサイト)
⑥ URL(https://~ Google Map 東京スカイツリー)
スマホの機種やOSのバージョンによっても動作が変わるかと思いますので、ご了承ください。
今回は、Android のスマホでの動作確認になります。
サンプルを実行される場合は、③の電話番号、④のメールアドレスを変更してください。
以下、QRコードを生成するプロラムになります。
生成される QRコードの種類は、5~10 行目の「qrText」の部分のコメント部分で切り替えてください。
また、qrcode ライブラリは、以下のコマンド等でインストールしておいてください。
コマンド:pip install qrcode
# qrcode ライブラリを使った QRコードの生成
import qrcode
# QRコードに埋め込むテキストサンプル
qrText = "QR Code Sample1" # 半角英数テキスト
#qrText = "QRコードの全角サンプル" # 半角+全角テキスト
#qrText = "tel:00000000000" # 電話番号
#qrText = "mailto:実際のメールアドレスを指定" # メールアドレス(送信先)
#qrText = "https://note.motnote.com/" # URL
#qrText = "https://maps.app.goo.gl/rdLhvs72E4djv2qU7" # Google Map
# 出力する QRコード画像
qrImage = "QRコード.png"
# QRコードオブジェクトを作成
qr = qrcode.QRCode(version=1, box_size=5, border=2)
# QRコードを生成
qr.add_data(qrText)
qr.make(fit=True)
# QRコードの画像を生成
img = qr.make_image(fill_color="black", back_color="white")
# QRコード画像をファイルに保存
img.save(qrImage)
以下のコマンドを実行すると、QRコードの画像ファイル「QRコード.png」が出力されます。
※実行方法は、Python の実行環境によって異なると思いますので、適宜、読み替えてください。
実行コマンド:python make_qrcode.py
読み取り結果
出力された QRコードのファイルスマホで読み取ったところ、以下のような動作になりました。
※使用するスマホの設定によって、動作は異なるかと思います。
① 半角英数字のテキスト
② 半角+全角文字のテキスト
QRコードのテキストが「Google の検索サイト(アプリ)」で入力された 状態で表示された。
③ 電話番号(tel:~)
QRコードの電話番号が「電話アプリ」で入力された状態で表示された。
④ メールアドレス(mailto:~ 送信先)
QRコードのメールアドレスが「メールアプリの宛先」に入力された状態で表示された。
⑤ URL(https://~ このサイト)
QRコードのURLが「ブラウザ」で表示された。
⑥ URL(https://~ Google Map 東京スカイツリー)
QRコードのURLが「Google Map アプリ」で表示された。
スマホアプリ等で独自の処理を行いたい場合は、QRコードに処理別のID等を設定したり、WEBサーバー側で処理を行う場合は、URLのパラメータで処理を分けるような実装すれば良いようです。
今回、QRコードやバーコードを WEBカメラで読み取る処理を試したのですが、精度があまり良くなかったため、説明は省かせていただきました。
— おわり —