python 生成二维码

方式一:qrcode

pip install qrcode
import qrcode

"""
qrcode : 二维码生成库   https://github.com/lincolnloop/python-qrcode
"""


def save_qrcode(text, pic_name, fill_color="black", back_color="white"):
    """
    二维码生成方法
    :param text:
    :param pic_name:
    :param fill_color:
    :param back_color:
    :return:
    """
    qr = qrcode.QRCode(
        version=1,  # 控制二维码密度,取值范围:1~40。如果是1的话就是一个21x21的矩阵
        # 控制用于二维码的错误校正。有以下四个可选值
        # ERROR_CORRECT_L: 可以纠正7%的错误
        # ERROR_CORRECT_M: 可以纠正15%的错误
        # ERROR_CORRECT_Q: 可以纠正25%的错误
        # ERROR_CORRECT_H: 可以纠正30%的错误
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,  # 二维码尺寸大小
        border=4  # 边界空白区域大小
    )
    if isinstance(text, str):
        qr.add_data(text)  # 添加文本
        qr.make(fit=True)
        # 颜色填充可以使用 单词 或者 rgb元组
        img = qr.make_image(fill_color=fill_color, back_color=back_color)
        img.save(pic_name)
        return True
    else:
        print("your input arg: text's type is not str.")
        return False

方式二:myqr

可生成普通二维码、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色)

pip install MyQR
"""
myqr: 二维码生成库  https://github.com/x-hw/amazing-qr/blob/master/README-cn.md
"""
import os
from MyQR import myqr


def save_myqrcode(content, pic_name, backgroud_pic=None, pic_path=os.getcwd(), colorized=True):
    """
    使用 myqr 生成二维码,可带有颜色和背景图
    :param content: 二维码内容
    :param pic_name: 保存的图片名字
    :param backgroud_pic: 二维码背景图地址
    :param pic_path: 保存的图片地址,默认是当前目录
    :param colorized: 是否启用彩色
    :return: 返回图片保存地址
    """
    # 如果背景图是动图的话,那么保存的二维码也要是个动图,即格式保持一致 .gif
    if backgroud_pic:
        if backgroud_pic.split(".")[-1] == "gif":
            pic_name = pic_name.split(".")[0] + ".gif"
            
    result = myqr.run(words=content,
                      colorized=colorized,  # 是否启用彩色
                      save_name=pic_name,  # 保存的图片名字
                      save_dir=pic_path,  # 保存的图片路径,默认当前路径
                      picture=backgroud_pic,  # 作为背景的图片路径,支持格式有:.jpg', '.png', '.bmp', '.gif
                      contrast=1.0,  # 对比度 浮点数
                      brightness=1.0,  # 亮度 浮点数
                      version=1,  # 设置容错率, 取值范围:1~40
                      level="H"  # 设置纠错水平,取值范围:L、M、Q、H,从左到右依次升高
                      )
    return result[-1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值