python生成二维码

# -*- coding: utf-8 -*-
# @Time    : 19-1-10 下午10:13
# @Author  : Felix Wang

import qrcode
from PIL import Image


def make_qrcode(data, qrimg_path, logo_path=None):
    """
    生成二维码
    :param data: 网址
    :param qrimg_path: 二维码存放路径
    :param logo_path: logo路径,logo必须是png格式图片
    :return:
    """
    qr = qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=8,
        border=2
    )
    qr.add_data(data)  # 添加信息
    qr.make(fit=True)
    img = qr.make_image()
    img = img.convert('RGBA')

    if logo_path:
        # 添加logo时logo的格式为png,不然会报错
        icon = Image.open(logo_path)
        img_w, img_h = img.size
        factor = 5  # 比例,过小可能无法识别
        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(qrimg_path)


if __name__ == '__main__':
    test = """
    将进酒⑴
    书法作品《将进酒》
    书法作品《将进酒》(13张)
    君不见,黄河之水天上来⑵,奔流到海不复回。
    君不见,高堂明镜悲白发,朝如青丝暮成雪⑶。
    人生得意须尽欢⑷,莫使金樽空对月。
    天生我材必有用,千金散尽还复来。
    烹羊宰牛且为乐,会须一饮三百杯⑸。
    岑夫子,丹丘生⑹,将进酒,杯莫停⑺。
    与君歌一曲⑻,请君为我倾耳听⑼。
    钟鼓馔玉不足贵⑽,但愿长醉不复醒⑾。
    古来圣贤皆寂寞,惟有饮者留其名。
    陈王昔时宴平乐,斗酒十千恣欢谑⑿。
    主人何为言少钱⒀,径须沽取对君酌⒁。
    五花马⒂,千金裘,呼儿将出换美酒,与尔同销万古愁⒃。 [1]
    """

    url = 'www.baidu.com'

    make_qrcode(url,'url_qrcode.png')
    make_qrcode(test, 'test_qrcode.png')
    make_qrcode(test,'test_with_logo_qrcode.png',logo_path='logo.png') # logo必须是png
原文地址:https://www.cnblogs.com/felixwang2/p/9056978.html