Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Python3でQRコードを生成する

pypi.org

実際のところ

導入

$ pip install qrcode

別途画像が必要な場合、画像生成ライブラリpillowが必要です

$ pip install pillow

コマンドで生成

何もしないとASCIIアートで出てきます
bashなら、そのまんまカメラで認識可能です

$ qr "https://duckduckgo.com"

とはいえこれだと使いづらい事この上ないので画像化します
ヘルプによると

When stdout is a tty the QR Code is printed to the terminal and when stdout is
a pipe to a file an image is written. The default image format is PNG.

とあるので、そのまんまパイプで吐き出し*1

$ qr "https://duckduckgo.com" > duckduckgo.png

すると
f:id:shuzo_kino:20180424204112p:plain

更にSVGで出力することも可能

$ qr --factory=svg "https://duckduckgo.com" > duckduckgo.svg

Gimpで開くと、こんな塩梅に
f:id:shuzo_kino:20180424204145p:plain

Pythonスクリプトで生成

Pythonのライブラリとして活用する方法も当然あります。
SVGファイルをやりとりする場合、以下のように。

import qrcode
import qrcode.image.svg

img = qrcode.make('Some data here', image_factory=qrcode.image.svg.SvgImage)
img.save("somedatahere.svg")

*1:画像出力には別途Pillowが必要です