0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】QRcode生成方法

Last updated at Posted at 2022-12-27

QRコードは、Quick Response Codeの略で、1994年にデンソーウェーブ社が開発したものです。規則に従って読み込むことで埋め込まれた数字やアルファベット、URLなどを読み取ることができるツールです。QRコードは無料で商用利用が可能になっています。

QRコードには主に2つのパターンがあり、ファインダパターンとアライメントパターンです。これら2つのパターンで位置情報を補正し、白黒のbitにより埋め込まれたデータを読み取ります。

  • ファインダパターン
    3つのコーナーを認識することで、シンボルの位置、大きさ、傾きを検出する。

  • アライメントパターン
    アライメントパターンの中心座標を求めて、シンボルのゆがみを補正する。

QRcode.PNG

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

pipを使ってqrcodeモジュールをインストールします。

$ pip3 install qrcode

Pythonコード

QRcode.py
import qrcode
from PIL import Image

qr = qrcode.QRCode(
    version=10, #QRコードの大きさ
    # 約7%以下の誤りを訂正, ERROR_CORRECT_M:約15%以下の誤りを訂正
    error_correction=qrcode.constants.ERROR_CORRECT_M, #ERROR_CORRECT_L:
    box_size=2, #サイズとピクセル数
    border=8 #境界線の太さ
)

qr.add_data('https://www.python.jp/')
qr.make()
_img = qr.make_image(fill_color="black", back_color="#ffffff")
_img.save('qrcode.png')
img = Image.open('qrcode.png')
img.show()

qrコマンド

qrcodeモジュールをインストールしたときに追加されるqrコマンドを使って、QRコードを表示したり画像ファイルを生成することもできます。

$ qr "Hello, world!"
█████████████████████████████
█████████████████████████████
████ ▄▄▄▄▄ ██▀█▀▄█ ▄▄▄▄▄ ████
████ █   █ █ █▄▄▄█ █   █ ████
████ █▄▄▄█ █  ▀▀▄█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ █▄█▄▄▄▄▄▄▄████
████▄█▄  ▄▄▀▀▄▄▄▀▀▄▄   █▀████
█████▀▀▄█▀▄▀▄▄ ▀  ▄▀█  ▄█████
████▄▄█▄▄▄▄█ ███▄▀  ▀▀██▄████
████ ▄▄▄▄▄ █▀▄ █  ▄ █▀  █████
████ █   █ █ ▄▀▄▄▄▄▀ ▀█▄▄████
████ █▄▄▄█ █▄▄ ▄ ▀▄▄▀▀ ██████
████▄▄▄▄▄▄▄█▄▄█▄██▄█▄██▄█████
█████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
$ qr "Hello, world!" > hello.png
$ file hello.png
hello.png: PNG image data, 290 x 290, 1-bit grayscale, non-interlaced

まとめ

今回は、QRcode生成プログラムを紹介した。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?