插件窝 干货文章 Python 实现二维码生成工具的多种实现方式

Python 实现二维码生成工具的多种实现方式

二维码 qrcode 生成 Logo 738    来源:    2025-03-13

在Python中,生成二维码有多种实现方式,常用的库包括 qrcodepyqrcodesegno 等。以下是几种常见的实现方式:

1. 使用 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")

2. 使用 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)

3. 使用 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)

4. 使用 Pillowqrcode 结合生成彩色二维码

你可以使用 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")

5. 使用 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 是最常用的库,简单易用;pyqrcodesegno 也提供了丰富的功能。你可以根据需求选择合适的库和方式来生成二维码。