方式一: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]