【第24回PYTHON講座】QRコードを作成、解読してみよう!

PYTHON

今回はQRコードを作成・解読のプログラムを作ってみようと思います。

QRコード

すごく簡単なので、是非最後までご覧ください。

では始めましょう。

『qrcode』『Pillow(PIL)』『pyzbar』ライブラリのインストール

QRコードを作成する為に、ライブラリ『qrcode』、QRコードを解読する為に、『Pillow』、『pyzbar』をします。

インストールされてない方は、下記のコマンドを実行してインストールして下さい(下記のコマンドを実行すると、インストールされているかも分かります)。

pip install qrcode
pip install Pillow
pip install pyzbar

QRコードを作成する

QRコードを作成するプログラムは下記になります。

import qrcode

outqrimg = qrcode.make('QRコードをPYTHONで作成')
outqrimg.save('C:/Labo/buffer/qrlogo.jpg')

下記のQRコードが作成されます。

作成されたQRコード

1行目:ライブラリ『qrcode』をimportします。

3、4行目grcode.make()に文章を記入します。saveで画像名を、プルパスで入力します。もし同じ名前のファイルがあれば、上書きされます。また、save関数では、jpgでもpngでも保存出来ます。

これだけです。簡単ですよね。

QRコードを解読する、unicodeが重要

QRコードを解読作成するプログラムは下記になります。

from PIL import Image
from pyzbar.pyzbar import decode, ZBarSymbol

inqrimg = decode(Image.open('C:/Labo/buffer/qrlogo.jpg'), symbols=[ZBarSymbol.QRCODE])
print(inqrimg[0][0].decode('utf-8'))

上記のプログラムを実行すると、”QRコードをPYTHONで作成“という文章がコマンドラインに出力されます。

1,2行目:ライブラリ『PIL』から『Image』をインポートします。ライブラリ『pyzbar.pyzbar』から『decode』、『ZBarSymbol』をインポートします。

4行目:QRコードの画像をQRコードで開いて、デコード(解読)するところになります。QRコードをデコードした内容がinqrimgに入力されます。

5行目:ここが重要になります。decode(‘utf-8’)ということで、読み込んだ内容をutf-8でデコードすることを指定しています。これをしないと、下記の通り、日本語の文字の所はバイトで出力されることになるので注意して下さい。

b'QR\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x89\xe3\x82\x92PYTHON\xe3\x81\xa7\xe4\xbd\x9c\xe6\x88\x90'

最後に

いかがだったでしょうか。

QRコードの作成には色々なオプションがあるので、今回のプログラムで作成したQRコードが、他のプログラムのQRコードと違ったりします。今回は、オプション設定してないデフォルト(一番簡単)な作成方法です。もし、時間のある方は、調べてみて下さい。

好きな文字を入力してQRコードを作ってみて、また、作ったQRコードを解読してみて下さい。

またの機会に、GUIベースでQRコードを作成、解読するプログラムを作成してみたいと思います。


コメント

タイトルとURLをコピーしました