python生成二维码
前言
二维码在我们的生活中可以说是必不可少的,不单单是手机支付、其它很多地方也都需要扫描二维码。那么下面我们就来看看如何使用python来生成二维码、以及识别二维码。
二维码基础知识
从图中我们可以看出二维码结构整体划分为功能图形和编码区两大部分,功能图形又细分为:空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形,而编码区细分为:格式信息、版本信息、数据和纠错码字,来简单了解一下每一部分的功能:
- 空白区:留白,不需要做任何处理
- 位置探测图形:协助扫描软件定位二维码码
- 位置探测图形分隔符:区分功能图形和编码区
- 定位图形:指示标识密度和确定坐标系
- 校正图形:校正图形的数量和位置
- 格式信息:存放格式化数据的信息
- 版本信息:二维码的规格,二维码符号共有 40 种规格的矩阵
- 数据和纠错码字:实际保存的二维码信息和纠错码字
生成二维码
1.MyQR生成二维码
from MyQR import myqr
# 生成静态二维码
ver, level, qr_name = myqr.run(words="123456")
print(ver, level, qr_name)
# 根据url生成二维码
ver, level, qr_name = myqr.run(words="https://www.baidu.com/")
print(ver, level, qr_name)
# 静态二维码---添加图片做成艺术二维码
ver, level, qr_name = myqr.run(words="https://www.baidu.com/", colorized=True,save_name='bairui.png')
'''
colorized=True 彩色二维码
colorized=False 黑白二维码
'''
print(ver, level, qr_name)
2.qrcode生成二维码
import qrcode
# 调用QRCode,可以接收以下参数
"""
version: 二维码的格子大小,可以是1到40。值越大,格子越大,一般不超过10,选择3比较合适
error_correction: 二维码错误容许率,默认为qrcode.constants.ERROR_CORRECT_M,容许小于 15% 的错误率
此外还有qrcode.constants.ERROR_CORRECT_L: 容许小于 7% 的错误率
qrcode.constants.ROR_CORRECT_H: 容许小于 30% 的错误率
box_size: 二维码每个小格子包含的像素数量
border: 二维码到图片边框的小格子数,默认值为 4
"""
qr = qrcode.QRCode() # 事实上里面的参数我们可以都不指定,默认会选择一个比较合适的参数
# 调用add_data,指定url。
qr.add_data("https://www.baidu.com/")
# 生成二维码图像,颜色为蓝色,背景色为粉色
img = qr.make_image(fill_color='blue', back_color='pink')
# 显示图像,这个会打开一个临时文件
img.show()
# 此外,我们还可以保存到硬盘上
img.save("1.png")
# 事实上,这个img实际上是通过PIL模块得到的,可以理解为里面Image对象
# 如果你熟悉PIL模块的话,那么你应该知道可以将里面Image对象保存成图片对应的字节流
from io import BytesIO
buf = BytesIO()
img.save(buf) # 将字节保存到buf里面
with open("2.png", "wb") as f:
f.write(buf.getvalue()) # 和直接保存为1.png是一样的
以上就是如何用Python生成二维码的详细内容,更多关于Python生成二维码的资料请关注博主其它相关文章!