Python学习——qrcode库使用

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 码

应用场景

  1. URL分享:生成链接二维码,供扫码访问。
  2. 产品信息:生成商品详情、联系方式等二维码,贴在商品上。
  3. 数据分享:分享 Wi-Fi 密码、文本信息等。
  4. 支付系统:生成支付二维码。

官方文档: qrcode GitHub 仓库
qrcode 库适合生成中小型二维码任务,若需要更多高级功能(如复杂样式或动画),可以结合其他库(如 segnoqrcode_artistic)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值