在Python中,生成二维码有多种实现方式,常用的库包括 qrcode
、pyqrcode
和 segno
等。以下是几种常见的实现方式:
qrcode
库qrcode
是一个简单易用的二维码生成库,支持生成PNG、SVG等格式的二维码。
pip install qrcode[pil]
import qrcode
# 创建二维码对象
qr = qrcode.QRCode(
version=1, # 控制二维码的大小,1 是最小的 21x21 矩阵
error_correction=qrcode.constants.ERROR_CORRECT_L, # 容错率
box_size=10, # 每个“盒子”的像素大小
border=4, # 边框的宽度
)
# 添加数据
qr.add_data('https://www.example.com')
qr.make(fit=True)
# 生成图像
img = qr.make_image(fill_color="black", back_color="white")
# 保存图像
img.save("qrcode.png")
pyqrcode
库pyqrcode
是另一个生成二维码的库,支持生成PNG、SVG、EPS等格式。
pip install pyqrcode pypng
import pyqrcode
# 生成二维码
url = pyqrcode.create('https://www.example.com')
# 保存为PNG文件
url.png('qrcode.png', scale=8)
# 保存为SVG文件
url.svg('qrcode.svg', scale=8)
segno
库segno
是一个功能强大的二维码生成库,支持生成多种格式的二维码,并且支持多种高级功能。
pip install segno
import segno
# 生成二维码
qr = segno.make('https://www.example.com')
# 保存为PNG文件
qr.save('qrcode.png', scale=10)
# 保存为SVG文件
qr.save('qrcode.svg', scale=10)
Pillow
和 qrcode
结合生成彩色二维码你可以使用 Pillow
库来进一步处理生成的二维码图像,例如添加颜色或背景图片。
pip install qrcode[pil] pillow
import qrcode
from PIL import Image
# 创建二维码对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
# 添加数据
qr.add_data('https://www.example.com')
qr.make(fit=True)
# 生成图像
img = qr.make_image(fill_color="blue", back_color="yellow")
# 保存图像
img.save("colored_qrcode.png")
qrcode
生成带有 Logo 的二维码你可以在二维码中间嵌入一个 Logo 图片。
import qrcode
from PIL import Image
# 创建二维码对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)
# 添加数据
qr.add_data('https://www.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_size = 50
logo = logo.resize((logo_size, logo_size), Image.ANTIALIAS)
# 计算 Logo 的位置
pos = ((img.size[0] - logo_size) // 2, (img.size[1] - logo_size) // 2)
# 将 Logo 粘贴到二维码中间
img.paste(logo, pos)
# 保存图像
img.save("qrcode_with_logo.png")
以上是几种常见的Python生成二维码的方式。qrcode
是最常用的库,简单易用;pyqrcode
和 segno
也提供了丰富的功能。你可以根据需求选择合适的库和方式来生成二维码。