今回は、pythonを使って画像ファイル内のQRコード内容を取得する方法をご紹介します。
環境
- macOS Sierra 10.12.5
- python 3.4
モジュールのインストール
今回使用するのは「pyzbarモジュール」です。
python2系では「zbarモジュール」が使えるのですが、3系には対応していません。
なので「pyzbarモジュール」を使用します。
Windowsの方はコマンドプロンプト、Macの方はターミナルを起動し、次のコマンドを実行してください。
>> pip install pyzbar
もしくは下記のページからソースを直接ダウンロードしてください。https://pypi.python.org/pypi/pyzbar/
pyzbarモジュールだけでなく「PILモジュール」も必要です。
未入手の方は次のコマンドで合わせて入手してください。
>> pip install pillow
さらに、大元となる「ZBar」も必要です。
下記のページにアクセスし、別途ダウンロードを行なってください。
http://zbar.sourceforge.net/
Macの方はHomebrewが使える状態であれば、次のコマンドでもダウンロード&インストールが完了しますので楽チンです。
>> brew install zbar
以上で環境の構築は完了です。
使用する画像
今回はpythonでQRコード画像を作成するで作成した画像ファイルを使用します。
スクリプト
pythonスクリプトファイルと同じフォルダ内にある「test.png」にアクセスし、その中のQRコード内容を出力するサンプルです。
# -*- coding: UTF-8 -*-
from pyzbar.pyzbar import decode
from PIL import Image
# 画像ファイルの指定
image = "test.png"
# QRコードの読取り
data = decode(Image.open(image))
# コード内容を出力
print(data[0][0].decode('utf-8', 'ignore'))
実行結果
QRコードの内容が出力されました。
まとめ
たった数行で読み取れるので非常に簡単でした。
QRコード内容に日本語が含まれる場合は文字化け対策でdecodeするのを忘れないようにしてください。
0 件のコメント:
コメントを投稿