リンク

2017年6月27日火曜日

pythonでQRコード画像を作成する

今回は、pythonを使ってQRコードを作成する方法をご紹介します。

環境
  • macOS Sierra 10.12.5
  • python 3.4

モジュールのインストール
今回使用するのは「PyQRCodeモジュール」です。
Windowsの方はコマンドプロンプト、Macの方はターミナルを起動し、次のコマンドを実行してください。
>> pip install pyqrcode

pipが使用できない場合は以下よりソースファイルを取得し、中のsetup.pyを実行してください。
https://pypi.python.org/pypi/PyQRCode

また、ご利用の環境によっては「pypngモジュール」を別途インストールする必要があります。
>> pip install pypng
もしくは
https://pypi.python.org/pypi/pypng

モジュールの用意が整っている前提で進めます。


基本スクリプト
# -*- coding: UTF-8 -*-

import pyqrcode

a = pyqrcode.create(content='本日は晴天ナリよ')
a.png(file='test.png')

実行結果
pythonスクリプトと同じフォルダ内にtest.pngができます。
とても小さい画像になってしまいました。
これはQRコードの内容が非常に少ないからです。
内容に比例して画像サイズも大きくなります。




応用編1 誤り訂正レベルを指定する
QRコードは「誤り訂正レベル」といって、汚れや破損によってQRコードの一部が読み取りにくい状態でも、コード自身でデータを復元する機能を持っています。
 →参考:http://www.qrcode.com/about/error_correction.html

誤り訂正レベルは M → L → Q → H の4段階あり、段階が上がるごとに復元能力がアップします。
ただし、復元能力のアップに比例してデータ量が増加するため、画像サイズが大きくなるというデメリットもあります。

PyQRCodeモジュールで誤り訂正レベルを指定するには次のように記述します。
# -*- coding: UTF-8 -*-

import pyqrcode

a = pyqrcode.create(content='本日は晴天ナリよ', error='H')
a.png(file='test.png')
比較画像


応用編2 QRコードの色を指定する
PyQRCodeモジュール(正確にはpypngモジュールの機能ですが)ではQRコードの色を自由に指定することができます。

色の指定はRGB値で次のように記述します。
# -*- coding: UTF-8 -*-

import pyqrcode

a = pyqrcode.create(content='本日は晴天ナリよ')
a.png(file='test.png', module_color=[255, 0, 0, 255])


応用編3 QRコードの背景色を指定する
QRコードの色と同様に、背景色も指定することができます。
# -*- coding: UTF-8 -*-

import pyqrcode

a = pyqrcode.create(content='本日は晴天ナリよ')
a.png(file='test.png', background=[255, 0, 0, 255])


<応用編4 QRコードのサイズを指定する
QRコードの内容に関わらず、そのサイズを指定することができます。
# -*- coding: UTF-8 -*-

import pyqrcode

a = pyqrcode.create(content='本日は晴天ナリよ')
a.png(file='test.png', sale=3)


まとめ
QRコードを作成できるモジュールはいくつかありますが、PyQRCodeモジュールは色の指定ができるのが良い部分だと思います。
QRコード作成機能をアプリケーションに組み込むことをお考えの場合は、ぜひご参考ください。

1 件のコメント:

  1. pngのサイズの変更の記述、saleになってますがscaleかと。

    返信削除