今回は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コードが作成されます。
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コードを作成、解読するプログラムを作成してみたいと思います。
コメント