ga('set', 'anonymizeIp', 1);
QR code在資訊爆炸的現在十分普遍,長長的一串資訊直接轉換成一張QR code。
本篇教學利用python產生您所需要的QRcode。
以下使用python3。
import qrcode
img = qrcode.make('Some data here') # QRCode資訊
img.save("QRcode.png") # 儲存圖片
qr = qrcode.QRCode(version = 3, error_correction = qrcode.constants.ERROR_CORRECT_H, box_size = 3,border = 4)
qr.add_data('Some data here')
qr.make(fit = True)
img = qr.make_image()
img.save("QRcode.png")
arcade.make(”)中帶的就是QR code中所要帶的資訊,可以是文字、數字、或是一串網址等。
qrcode.QRcode()中有幾個參數,分別介紹如下:
1. version: 一個1~40的整數,用來控制QR code的尺寸。最小的尺寸為一個21×21格的矩陣。若設定為None且make函數之fit參數為True時,將自動決定QR code的尺寸。
2. error_correction: 錯誤碼糾正程度,影響了QR code若被污損造成難以辨識,能自動修復的比例。有四種程度可調整,分別為ERROR_CORRECT_L(7%可被修正)、ERROR_CORRECTION_M(15%可被修正)、ERROR_CORRECTION_Q(25%可被修正)、ERROR_CORRECTION_H(30%可被修正),越大的修正程度將會佔用更多的資料空間。
3. box_size: 控制每個格子的像素數量,預設為10。
4. border: 控制邊框包含的格子數量,預設為4,是標準規定的最小值。
5. image_factory: 用來控制生成的QR code圖檔型別。
當然,模組中也支援產生色彩不同的QR code,如下。
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('Some data here')
qr.make(fit=True)
img = qr.make_image(fill_color="blue", back_color="yellow")
img.save('QRcode.png')
這樣就會生成藍前景黃背景的QR code,這邊要提醒注意,背景與前景色調需鮮明,否則將影響辨識速度和成功率。
這是一個特殊功能,能讓生成之QR code更有鑑別度,更吸引使用者。
範例程式如下:
import qrcode
from PIL import Image
qr = qrcode.QRCode(version = 3, error_correction = qrcode.constants.ERROR_CORRECT_H, box_size = 3,border = 4)
qr.add_data('Some data here')
qr.make(fit = True)
img = qr.make_image()
img = img.convert('RGBA')
# 設定色彩
img = qr.make_image(fill_color="blue", back_color="yellow")
# 讀取客製化圖片以嵌入QR code中
icon = Image.open('./greenLight.png')
img_w, img_h = img.size
factor = 4
size_w = int(img_w/factor)
size_h = int(img_h/factor)
icon_w, icon_h = icon.size
if icon_w > size_w:
icon_w = size_w
if icon_h > size_h:
icon_h = size_h
icon = icon.resize((icon_w, icon_h), Image.NEAREST)
w = int((img_w - icon_w)/2)
h = int((img_h - icon_h)/2)
icon = icon.convert('RGBA')
img.paste(icon, (w,h), icon)
img.save("logoQR1.png")
最後生成的結果如下: