首页 > 其他 > 详细

实现定制二维码(有空研究下)

时间:2021-08-14 23:37:51      阅读:22      评论:0      收藏:0      [点我收藏+]

任意链接生成二维码,并把把图片镶嵌在二维码中

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(‘完成‘)
    

实现定制二维码(有空研究下)

原文:https://www.cnblogs.com/wkhzwmr/p/15141777.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!