LoginSignup
0
1

電子チケット 102 - QRコードメーカーを作る

Last updated at Posted at 2024-05-03

QRコードを印刷できる簡単なプログラムを作ってみよう!

トップページに戻る
前回:QRコード電子チケットシステムの仕組み

必要な物

  • Python
  • お好きなコードエディター(おすすめはVS Code

開発のステップ

開発のステップ」に従って、どうやったら「QRコードメーカー」を作れるか考えよう!

  1. パーツ分け
    「QRコードメーカーに必要な機能はなんだろう?」

    必要な機能とパーツをリストアップしてみよう!
    :

    例は以下参照

    (例)
    • QRコードに入れる情報をインプットする機能
    • QRコードを作成する機能
    • QRコードを指定した場所に保存する機能

    これらの機能をPythonで実装してみよう!

  2. 関係性
    入力 --データ--> プログラム

  3. 作図
    QRコード作成プログラム
    QRコード入場管理 - QRコード作成_テスト.jpg

モジュールをインストール

QRコードを作成するには qrcode を使います。
pip install qrcode

QRコードの生成

`python
img = qrcode.make("Hello World!")
img.save('test.png') #先にセーブ

img.show()
`
生成されたQRコードが正しいかどうかは、http://qrcode.red/ で確認できます。

QRコードの生成(詳細設定)

詳細な設定を行うこともできます。
`python
import qrcode
from PIL import Image

qr = qrcode.QRCode(
version=3,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=2,
)
qr.add_data('Hello World!')
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white").convert('L')
img.save('test.png')

img.show()
`

  • version
    • セル数を決めるパラメータで、1から40の値に設定できます。
    • 1で21セルx21セル、2で25セルx25セル、40で177セルx177セルです
    • 以下参照
  • error_correction
    • 誤り訂正レベルで以下のパラメータから選択します
      • ERROR_CORRECT_L
        • 7%以下のエラーを修正
      • ERROR_CORRECT_M
        • 初期設定値
        • 15%以下のエラーを修正
      • ERROR_CORRECT_Q
        • 20%以下のエラーを修正
      • ERROR_CORRECT_H
        • 30%以下のエラーを修正
  • box_size
    • ボックスのピクセル数
    • border
    • 境界線の太さ
    • 初期値4(最小設定値)

UIを作成

`python
import qrcode

print("qrcodeを作成します。")
input_data = input("QRコードにいれるデータを入力してください: ")

qr = qrcode.QRCode(
version=3
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=2,
)
qr.add_data(input_data)
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white").convert('L')
save_path = input("保存する名前を決めてください: ")
img.save(save_path + '.png')
print(f"'{save_path}.png'をセーブしました!)

img.show()
print()で情報を表示します。
input()でユーザーが入力したデータをqrcode.pngというファイルで保存するプログラムを作成してみました!

まとめ

PythonでQRコードを作る簡単なプログラムを作成してみました。
他にも自由にカスタムしてみてください。
オススメの他記事:PythonとOpenCVのみでカメラからQRコード読み取り

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1