QRコードを大量に作るPythonプログラム
インストール
pip install qrcode
pip install pillow
コード
# -*- coding: utf-8 -*-
import qrcode
from qrcode.image.styledpil import StyledPilImage
#from qrcode.image.styles.moduledrawers.pil import RoundedModuleDrawer
#from qrcode.image.styles.colormasks import RadialGradiantColorMask
from qrcode.image.styles import colormasks, moduledrawers
#img_1 = qr.make_image(image_factory=StyledPilImage, module_drawer=RoundedModuleDrawer())
#img_2 = qr.make_image(image_factory=StyledPilImage, color_mask=RadialGradiantColorMask())
#img_3 = qr.make_image(image_factory=StyledPilImage, embeded_image_path="/path/to/image.png")
def generate_qr_code(data, filename):
qr = qrcode.QRCode(
version=1,
#version=40,
error_correction=qrcode.constants.ERROR_CORRECT_L,
#error_correction=qrcode.constants.ERROR_CORRECT_M,
#error_correction=qrcode.constants.ERROR_CORRECT_Q,
#error_correction=qrcode.constants.ERROR_CORRECT_H,
#mask_pattern=3,
box_size=20,
border=2,
)
qr.add_data(data.encode('utf-8')) # 日本語文字列をUTF-8エンコーディングで処理
#qr.make(fit=True)
img = qr.make_image(image_factory=StyledPilImage,
#
module_drawer=moduledrawers.SquareModuleDrawer()
#module_drawer=moduledrawers.RoundedModuleDrawer()
#module_drawer=moduledrawers.CircleModuleDrawer()
#module_drawer=moduledrawers.GappedSquareModuleDrawer()
#module_drawer=moduledrawers.HorizontalBarsDrawer()
#module_drawer=moduledrawers.VerticalBarsDrawer()
)
#img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
def read_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file: # ファイルをUTF-8エンコーディングで読み込み
return file.readlines()
def main():
file_path = "a.txt" # 入力ファイル名を固定化
lines = read_file(file_path)
for index, line in enumerate(lines):
line = line.strip()
if line:
output_filename = f"dat/"+(str(index).zfill(3))+f".png" # 出力ファイル名を固定化
generate_qr_code(line, output_filename)
print(f"QR code '{output_filename}' generated successfully!")
if __name__ == '__main__':
main()
パラメーター
細かい設定はサイトにて
https://github.com/lincolnloop/python-qrcode
QRコードの商標はデンソーウェーブの登録商標です。
ディスカッション
コメント一覧
まだ、コメントがありません