QRCodeLibPyは、Python3で書かれたQRコード生成ライブラリです。
JIS X 0510に基づくモデル2コードシンボルを生成します。
- 数字・英数字・8ビットバイト・漢字モードに対応しています
- 分割QRコードを作成可能です
- 1bppまたは24bpp BMP、PPM、XBM SVG形式でファイルに保存可能です
- Base64エンコードされたBitmapデータを取得可能です
- 画像の前景色、背景色を指定可能です
- 8ビットバイトモードでの文字コードを指定可能です
qrcodelibパッケージをインポートしてください。
TkInter版は TkInterDemo.py 。WxPython版は WxPythonDemo.py モジュールを実行してください。
WxPython版はWxPythonのインストールが必要です。
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
Symbolsクラスのコンストラクタ引数に、ErrorCorrectionLevelクラスの定数を設定します。
import qrcodelib as qr
symbols = qr.Symbols(qr.ErrorCorrectionLevel.L)
Symbolsクラスのコンストラクタで設定します。
import qrcodelib as qr
symbols = qr.Symbols(max_version=10)
Symbolsクラスのコンストラクタで設定します。
import qrcodelib as qr
symbols = qr.Symbols(byte_mode_encoding="utf-8")
Symbolsクラスのコンストラクタで設定します。型番の上限を指定しない場合は、型番40を上限として分割されます。
import qrcodelib as qr
symbols = qr.Symbols(allow_structured_append=True)
型番1を超える場合に分割し、各QRコードをファイルへ保存する例を示します。
import qrcodelib as qr
symbols = qr.Symbols(max_version=1, allow_structured_append=True)
symbols.append_text("abcdefghijklmnopqrstuvwxyz")
for i in range(symbols.count):
symbols.item(i).save_bitmap(f"qrcode_{str(i)}.bmp")
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
# 24bpp DIB
symbol.save_bitmap("qrcode.bmp")
# 1bpp DIB
symbol.save_bitmap("qrcode.bmp", monochrome=True)
# 10 pixels per module
symbol.save_bitmap("qrcode.bmp", module_size=10)
# Specify foreground and background colors
symbol.save_bitmap("qrcode.bmp", fore_rgb="#0000FF", back_rgb="#FFFFFF")
# PPM
symbol.save_ppm("qrcode.ppm")
# XBM
symbol.save_xbm("qrcode.xbm")
# SVG
symbol.save_svg("qrcode.svg")
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
(data, width, height) = symbol.get_rgb_bytes()
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
svg = symbol.get_svg()
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
# BitmapImage
image = symbol.tk_bitmap_image()
# PhotoImage
image = symbol.tk_photo_image()
import wx
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
(data, width, height) = symbol.get_rgb_bytes()
bitmap = wx.Bitmap.FromBuffer(width, height, data)
import PIL.Image
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
(data, width, height) = symbol.get_rgb_bytes()
image = PIL.Image.frombytes("RGB", (width, height), data)
# PNG
image.save("qrcode.png", "PNG")
# GIF
image.save("qrcode.gif", "GIF")
# JPEG
image.save("qrcode.jpg", "JPEG")
import qrcodelib as qr
symbols = qr.Symbols()
symbols.append_text("012345abcdefg")
symbol = symbols.item(0)
base64 = symbol.get_bitmap_base64()