任意链接生成二维码,并把把图片镶嵌在二维码中
import qrcode # 二维码生成包
from PIL import Image # 图片处理包
def creat_qrcode(url,filename):
qr = qrcode.QRCode(
version= 1,
# 设置容错率未最高
error_correction=qrcode.ERROR_CORRECT_H,
box_size=10, # 应该是二维码尺寸
border= 4, # 二维码边框,边界宽度
)
qr.add_data(url) # 把链接传进去
qr.make(fit=True) # fit等于true是干啥为了制作
img = qr.make_image() # 不知
# 设置二维码为彩色
img = img.convert('RGBA')
icon = Image.open(filename) # 调用Image模块中的open函数,导入二维码中的图标
w,h = img.size
factor = 4 # 不知
size_w = int(w/factor) # 为了之后的尺寸运算么
size_h = int(h/factor)
icon_w,icon_h = icon.size # 和上面img二维码一样,不过这里是图标
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((w-icon_w)/2) # 设置二维码图片大小
h = int((h-icon_h)/2)
icon = icon.convert('RGBA')
newing = Image.new('RGBA',(icon_w + 8,icon_h+8),(255,255,255)) # 不知
img.paste(newing,(w-4,h-4),newing) # 不知
img.paste(icon,(w,h),icon)
img.save('qr2.png',quality = 100) #quality = 100难道是像素
if __name__ == '__main__':
# 这里不能直接加图片名,不知为啥,明明放在同一文件夹下
creat_qrcode('http://120.27.220.235:8001/',r'test\logo1.png') # 估计Image.open函数的传参有关系
print('完成')