本文的實(shí)驗(yàn)環(huán)境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10
普通二維碼
from PIL import Image
import qrcode
qr = qrcode.QRCode(
version=2, # 控制二維碼的尺寸檀夹,此處為 25*25
error_correction=qrcode.constants.ERROR_CORRECT_H, # 控制二維碼的錯(cuò)誤糾正功能悍及,此處為大約30%或更少的錯(cuò)誤能被糾正
box_size=10, # 控制二維碼中每個(gè)小格子包含的像素?cái)?shù)
border=1) # 控制邊框(二維碼與圖片邊界的距離)
qr.add_data("http://www.reibang.com/u/02877dbc2662") # 設(shè)置二維碼中包含的數(shù)據(jù)
qr.make(fit=True) # 二維碼大小自適應(yīng)
img = qr.make_image()
img.save("qrcode.png")
中間含圖片的二維碼
from PIL import Image
import qrcode
qr = qrcode.QRCode(
version=2, # 控制二維碼的尺寸嵌器,此處為 25*25
error_correction=qrcode.constants.ERROR_CORRECT_H, # 控制二維碼的錯(cuò)誤糾正功能胁住,此處為大約30%或更少的錯(cuò)誤能被糾正
box_size=10, # 控制二維碼中每個(gè)小格子包含的像素?cái)?shù)
border=1) # 控制邊框(二維碼與圖片邊界的距離)
qr.add_data("http://www.reibang.com/u/02877dbc2662") # 設(shè)置二維碼中包含的數(shù)據(jù)
qr.make(fit=True) # 二維碼大小自適應(yīng)
img = qr.make_image()
img = img.convert("RGBA")
icon = Image.open("748.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.ANTIALIAS)
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
img.paste(icon, (w, h), icon)
img.save("filled_qrcode.png")