python-qrcode:用Python简单快速生成二维码的终极利器

文摘   2025-01-02 12:05   湖南  

二维码已经成为了现代信息传递中不可或缺的一部分,无论是在商业、教育还是日常交流中,二维码的使用越来越普遍。而在Python环境中,有一个非常强大且简单易用的库 - python-qrcode,它可以帮助用户轻松生成各种二维码。本文将详细介绍该库的功能及如何使用它。

什么是QR码?

QR码(Quick Response Code)是一种二维矩形码,以快速的可读性和相对较大的存储容量而闻名。QR码由黑色模块在白色背景上以方形模式排列而成,可以存储二进制、字母数字或汉字等多种类型的数据。其广泛应用使其在日常生活中非常常见。

安装python-qrcode

要安装python-qrcode,你只需要在终端中运行以下命令:

pip install qrcode

如果你希望使用更多图像功能,可以安装带有Pillow依赖项的qrcode版本:

pip install "qrcode[pil]"

这样你就能够生成PNG文件或在控制台直接渲染二维码。

基本用法

使用python-qrcode非常简单。以下是生成二维码的基本示例:

import qrcode

# 创建二维码
img = qrcode.make('Some data here')
# 保存图片
img.save("some_file.png")

除了在Python中直接使用外,你还可以通过命令行快速生成二维码:

qr "Some text" > test.png

高级用法

如果你需要更大的控制权,可以使用QRCode类。以下是一个使用该类的代码示例:

import qrcode

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)

# 添加数据
qr.add_data('Some data')
qr.make(fit=True)

# 创建图像
img = qr.make_image(fill_color="black", back_color="white")

在这里,version参数用于控制二维码的大小,fill_colorback_color来更改背景和图案颜色。此外,error_correction参数能够控制二维码的错误纠正能力,从而影响二维码的可读性:

  • • ERROR_CORRECT_L(约7%的错误可被纠正)

  • • ERROR_CORRECT_M(约15%的错误可被纠正,默认值)

  • • ERROR_CORRECT_Q(约25%的错误可被纠正)

  • • ERROR_CORRECT_H(约30%的错误可被纠正)

SVG支持

python-qrcode库还支持生成SVG格式的二维码,这为不同使用场景提供了灵活性。你可以使用以下命令创建SVG文件:

qr --factory=svg "Some text" > test.svg

在Python中,可以指定不同的SVG工厂来生成图像:

import qrcode
import qrcode.image.svg

factory = qrcode.image.svg.SvgPathImage
img = qrcode.make('Some data here', image_factory=factory)

此外,你还可以使用其他SVG工厂,与普通的SVG工厂相同,但背景填充为白色。

使用Pillow自定义风格图像

在版本较高的Python中,使用Pillow可以对QR码进行更高级的样式处理。你可以通过如下方法嵌入图片或者设置样式:

from qrcode.image.styledpil import StyledPilImage
from qrcode.image.styles.moduledrawers.pil import RoundedModuleDrawer
from qrcode.image.styles.colormasks import RadialGradiantColorMask

qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data('Some data')

# 使用圆角,用样式化的图像实例化QR码
img = qr.make_image(image_factory=StyledPilImage, module_drawer=RoundedModuleDrawer())
img.save("styled_qr.png")

通过使用不同的工厂和样式,你可以创造出更具视觉冲击力的二维码。

结束语

python-qrcode库为生成二维码提供了极大的便利性和灵活性,无论是简单的文本数据还是更复杂的设计需求,它都可以轻松满足。通过本文的介绍,相信你已经对如何使用python-qrcode有了一定的了解,不妨试试看,给你的项目增加这个酷炫的功能吧!

项目地址:https://github.com/lincolnloop/python-qrcode


小白这样学Python
专注Python编程开发知识分享!
 最新文章