qrcode
是一个用于生成二维码的 Python 库,功能简单易用,支持生成多种类型和大小的二维码图像。它可以将文本、URL 或其他数据编码为二维码,并输出为图像格式,如 PNG 或 JPEG。
安装
pip install qrcode[pil]
([pil]
可选,推荐安装以支持图像处理。)
核心功能
1. 生成简单二维码
import qrcode
# 创建二维码
data = "https://example.com"
qr = qrcode.QRCode()
qr.add_data(data)
qr.make(fit=True)
# 生成图像
img = qr.make_image(fill_color="black", back_color="white")
img.show()
2. 指定二维码的大小与容错级别
二维码容错级别可以设置为:
qrcode.constants.ERROR_CORRECT_L
: 容错率约7%(默认)。qrcode.constants.ERROR_CORRECT_M
: 容错率约15%。qrcode.constants.ERROR_CORRECT_Q
: 容错率约25%。qrcode.constants.ERROR_CORRECT_H
: 容错率约30%。
import qrcode
from qrcode.constants import ERROR_CORRECT_H
qr = qrcode.QRCode(
version=2, # 尺寸(1~40,对应二维码的矩阵大小)
error_correction=ERROR_CORRECT_H, # 容错级别
box_size=10, # 每个点的像素大小
border=4, # 边框宽度,单位为点
)
qr.add_data("https://example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="blue", back_color="yellow")
img.save("custom_qrcode.png")
3. 快速生成二维码
如果不需要高度自定义,可以直接使用简化的接口:
import qrcode
img = qrcode.make("Hello, QR Code!")
img.save("simple_qrcode.png")
高级用法
1. 嵌入 Logo 或图像
通过 PIL(Pillow)库可以为二维码添加 Logo:
from PIL import Image
import qrcode
# 创建二维码
qr = qrcode.QRCode(error_correction=ERROR_CORRECT_H)
qr.add_data("https://example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white").convert('RGB')
# 添加 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)
img.save("qrcode_with_logo.png")
2. 输出为 ASCII 艺术
可将二维码输出为终端中的 ASCII 艺术:
import qrcode
qr = qrcode.QRCode()
qr.add_data("https://example.com")
qr.make()
qr.print_ascii() # 打印二维码为 ASCII 码
应用场景
- URL分享:生成链接二维码,供扫码访问。
- 产品信息:生成商品详情、联系方式等二维码,贴在商品上。
- 数据分享:分享 Wi-Fi 密码、文本信息等。
- 支付系统:生成支付二维码。
官方文档: qrcode GitHub 仓库
qrcode
库适合生成中小型二维码任务,若需要更多高级功能(如复杂样式或动画),可以结合其他库(如 segno
或 qrcode_artistic
)。