python中的qrcode库

1. 核心功能
- 生成二维码:将文本、网址等信息编码为二维码图片,支持自定义尺寸、颜色、容错率等。
- 依赖库:需配合
Pillow
(PIL)库生成图像,安装时需使用pip install qrcode[pil]
。
2. 常用类与方法
QRCode 类:
- 初始化:
1
2
3
4
5
6qr = qrcode.QRCode(
version=1, # 二维码尺寸(1-40),值越大尺寸越大
error_correction=qrcode.constants.ERROR_CORRECT_H, # 容错率(L/M/Q/H)
box_size=10, # 每个点的像素大小
border=4 # 边框宽度(单位:点)
) - 添加数据:
1
qr.add_data("https://example.com") # 支持文本、网址等
- 生成二维码:
1
qr.make(fit=True) # fit=True 自动调整尺寸以适应数据
- 生成图像:
1
2
3img = qr.make_image(fill_color="black", back_color="white") # 自定义颜色
img.save("qrcode.png") # 保存为文件
img.show() # 显示二维码
- 初始化:
快捷方法:
1
2
3# 快速生成二维码(自动配置参数)
img = qrcode.make("Hello, QR Code!", fill_color="blue", back_color="yellow")
img.save("simple_qrcode.png")
3. 使用示例
基础示例:
1
2
3
4
5
6
7
8
9
10import qrcode
# 创建二维码对象
qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data("https://github.com")
qr.make(fit=True)
# 生成并保存图像
img = qr.make_image(fill_color="green", back_color="white")
img.save("github_qrcode.png")添加 Logo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18from PIL import Image
# 生成二维码图像
qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data("https://example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white").convert("RGBA")
# 打开 Logo 并调整大小
logo = Image.open("logo.png")
logo = logo.resize((50, 50))
# 将 Logo 粘贴到二维码中心
pos = ((img.size[0] - logo.size[0]) // 2, (img.size[1] - logo.size[1]) // 2)
img.paste(logo, pos, logo)
# 保存结果
img.save("qrcode_with_logo.png")
4. 注意事项
- 安装依赖:需安装
qrcode
和Pillow
库,使用命令pip install qrcode[pil]
。 - 容错率选择:
ERROR_CORRECT_H
容错率最高(约30%),但二维码尺寸较大。 - 颜色对比度:自定义颜色时,需确保前景色与背景色有足够对比度,以便扫描识别。
- 二维码尺寸:
version
参数控制尺寸,值越大可存储信息越多,但扫描速度可能变慢。
总结
- 创建二维码:通过
QRCode
类配置参数(尺寸、容错率、颜色等)。 - 添加数据:使用
add_data()
方法添加要编码的信息。 - 生成图像:调用
make_image()
生成二维码图片,支持自定义颜色。 - 保存/显示:用
save()
保存为文件,show()
直接显示二维码。
- 标题: python中的qrcode库
- 作者: lemon
- 创建于 : 2025-04-12 22:04:56
- 更新于 : 2025-04-12 22:08:23
- 链接: https://lemon2003.github.io/post/20250412220456.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论