iT邦幫忙

0

Python產生QRCode圖片 - Python練習題一

Python練習題一

import qrcode
import sys
import os
 
# 需要傳入5個參數
# msg: QRCode的內容
# box_size: 圖裡面的像素大小,也就是每個黑點要多大,大一點整個圖也會變大,預設值為 10
# border: 旁邊白框大小,預設值為 2
# file_name: QRCode的圖片檔名, 不包含附檔名
# path: QRCode的圖片存檔路徑, 分隔字元採用斜線(/)

arg_cnt = len(sys.argv)
if arg_cnt < 2:
    print("需要傳入5個參數:")
    print("qtcode_gen msg [box_size [border [file_name [path]]]")
    print("  msg: QRCode的內容")
    print("  box_size: 圖裡面的像素大小,也就是每個黑點要多大,大一點整個圖也會變大,預設值為 10")
    print("  border: 旁邊白框大小,預設值為 2")
    print("  file_name: QRCode的圖片檔名, 不包含附檔名")
    print("  path: QRCode的圖片存檔路徑, 分隔字元用斜線(/)")
    sys.exit(1)

# QRCode 的內容
msg = sys.argv[1]
# 二維碼矩陣大小, 1~40
ver = 1
# 二維碼每個小格像素值, 預設10
box_size=10 
if arg_cnt >= 3 and sys.argv[2].isdigit():
    box_size = int(sys.argv[2])

# 外框像素, 預設2
border=2
if arg_cnt >= 4 and sys.argv[3].isdigit():
    border = int(sys.argv[3])

# file_name, 圖片格式固定為 png
file_name = 'qrcode_tmp.png'
if arg_cnt >= 5:
    file_name = sys.argv[4] + '.png'
# path
path = os.getcwd() #目前工作路徑
if arg_cnt >= 6:
    path = sys.argv[5]

if path[-1] != '/':
    path += '/'

# 產生一個 qrcode 物件
# error_correction: 錯誤修正程度,設置為 High
qr = qrcode.QRCode(
    version=ver,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=box_size,
    border=border,
)

# 產生圖檔
qr.add_data(msg)
qr.make(fit=True) #忽略version
img = qr.make_image()

# 存檔
img.save(path+file_name)
print("完成\n"+path+file_name)


尚未有邦友留言

立即登入留言