Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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が必要です