Python生成带自定义信息和头像图片的二维码

2017-02-27 董付国 Python小屋 Python小屋

直接上代码,有关二维码各种版本尺寸大小与信息容量以及容错相关的内容请自行搜索查阅。


from os import listdir
from os.path import splitext
import qrcode

from qrcode.constants import ERROR_CORRECT_H

from PIL import Image


def generateQRCode(data, imgFn):   

    qr = qrcode.QRCode(version=20,

                       error_correction=ERROR_CORRECT_H,

                       box_size=10, border=4)

    # 添加自定义文本信息
    qr.add_data(data)
    qr.make()
    # 创建二维码图片
    img = qr.make_image()
    imgW, imgH = img.size
    w1, h1 = map(lambda x: x//4, img.size)
    # 要粘贴的自定义图片,生成缩略图
    im = Image.open(imgFn)
    imW, imH = im.size
    w1 = w1 if w1<imW else imW
    h1 = h1 if h1<imH else imH
    im = im.resize((w1, h1))
    # 在二维码上中间位置粘贴自定义图片
    img.paste(im, ((imgW-w1)//2, (imgH-h1)//2))
    # 保存二维码图片
    img.save('qrCode.png')


generateQRCode('董付国 Python小屋', 'test.jpg')


代码中所用test.jpg图片如下:

生成的二维码图片如下:


使用微信扫描二维码的结果如下: