参考文章
1. https://www.cnblogs.com/sunzhiqi/p/10600159.html
2. https://www.cnblogs.com/jubing/p/11646195.html
3. https://www.cnblogs.com/piaodoo/p/13940410.html
代码
# 图片为当前路径,和py文件一个目录
# 二维码脚本
# MyQR库 不支持中文
from MyQR import myqr #注意大小写
from PIL import Image
# qrcode 支持中文
import qrcode
# 普通二维码
def common_qr(url):
#不支持中文
# 图片名称为 qrcode.png
myqr.run(words=url)
# 打开图片
img = Image.open("qrcode.png")
img.show()
# 带插图(背景图)二维码
def insert_picture(url):
myqr.run(
words=url,
# 扫描二维码后,显示的内容,或是跳转的链接
version=3, # 设置容错率 图片大小?
level='H', # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
picture='xinweng.png', # 图片所在目录,可以是动图
colorized=True, # 黑白(False)还是彩色(True)
contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片。默认为1.0。
brightness=1.0, # 用来调节图片的亮度,用法同上。
save_name='chatuQr.png', # 控制输出文件名,格式可以是 .jpg, .png ,.bmp ,.gif
)
img = Image.open("chatuQr.png")
img.show()
# 花样
def picture_qr(url,imgurl):
myqr.run(
words=url,
version=4,
picture=imgurl,
# colorized=True,
save_name='artisticColor.png'
)
img = Image.open("artisticColor.png")
img.show()
# qrcode
def common_qrcode(content):
Image = qrcode.make(content) # 简单二维码
Image.show()
def common_qrcode_up(content):
# version是二维码的尺寸,数字大小决定二维码的密度 error_correction:是指误差
# box_size:参数用来控制二维码的每个单元(box)格有多少像素点
# border: 参数用控制每条边有多少个单元格(默认值是4,这是规格的最小值
qr = qrcode.QRCode(version=3,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=8,
border=4,
)
# 添加数据
qr.add_data(content)
# 生成二维码
qr.make(fit=True)
img = qr.make_image()
# 保存到当前路径
img.save(r"qrcode_code.png")
img.show()
def qrcode_logo(content,imgurl):
qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4)
qr.add_data(content)
qr.make(fit=True)
img = qr.make_image()
img = img.convert("RGBA")
# add logo
icon = Image.open(imgurl)
# 获取 logo尺寸
img_w, img_h = img.size
factor = 4
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)
icon = icon.convert("RGBA")
img.paste(icon, (w, h), icon)
img.show()
# img.save('D:/qrcodelogo.png')
if __name__ == '__main__':
url = "www.baidu.com"
content = "=你好"
imgurl = "xinweng.png"
imgurl_two = "biaoqing.jpg"
common_qr(url)
insert_picture(url)
common_qrcode(content)
common_qrcode_up(content)
qrcode_logo(content,imgurl)
picture_qr(url,imgurl_two)
二维码样子
其它普通就不粘贴了