📜  制作二维码的python库 - Python(1)

📅  最后修改于: 2023-12-03 15:36:57.468000             🧑  作者: Mango

制作二维码的Python库 - Python

简介

二维码是一种将数据编码成黑白图案以方便扫描读取的技术。Python拥有众多成熟的制作二维码的库,本篇文章将会介绍其中最为常用的两个库:qrcodepyqrcode

qrcode

qrcode库是一个简单易用的制作二维码的库,从2008年开发至今已得到了广泛的应用。使用pip即可安装:

pip install qrcode
示例

下面是如何使用qrcode制作一个二维码的示例:

import qrcode

qr = qrcode.QRCode(version=1, box_size=10, border=5)

data = "http://www.example.com"

qr.add_data(data)
qr.make(fit=True)

img = qr.make_image(fill_color='black', back_color='white')
img.save("qr.png")

以上代码制作了一个跳转至http://www.example.com的二维码,保存在文件qr.png中。

参数说明

qrcode库中最为重要的类是QRCode类,其实例对象可以调用以下属性及方法:

QRCode.version

二维码的版本,即二维码种类(1-40)。默认值为1

QRCode.error_correction

二维码的纠错级别,可选值为'L'(7%的数据可以被修正),'M'(15%的数据可以被修正),'Q'(25%的数据可以被修正),'H'(30%的数据可以被修正)。默认值为'L'

QRCode.box_size

二维码中每个小格子的大小,单位为像素。默认值为10

QRCode.border

二维码边框的大小,单位为小格子数。默认值为4

QRCode.add_data(data)

向二维码中加入数据,data参数表示要加入的数据。

QRCode.make(fit=False)

生成二维码图案,fit参数表示是否自适应调整二维码的尺寸以容纳所加入的数据。默认值为False

QRCode.make_image(fill_color='black', back_color='white', image_factory=None)

生成二维码图像,fill_color参数表示二维码的前景色(即黑色部分),默认值为'black'back_color参数表示二维码的背景色(即白色部分),默认值为'white'image_factory参数表示生成图像的工厂类型,可以选择Pillow(默认值)、pypngmatplotlib三种类型。

pyqrcode

pyqrcode库是另一个制作二维码的库。与qrcode相比,其代码更简洁、更易读,可读性更强。使用pip即可安装:

pip install pyqrcode
示例

下面是如何使用pyqrcode制作一个二维码的示例:

import pyqrcode

data = pyqrcode.create("http://www.example.com")
data.png("qr.png", scale=6)

以上代码制作了一个跳转至http://www.example.com的二维码,保存在文件qr.png中。

参数说明

pyqrcode库中最为重要的类是QRCode类,其实例对象可以调用以下属性及方法:

create(data, error='L', version=None)

创建一个二维码,并返回二维码的实例对象。data参数表示要生成二维码的数据;error参数表示纠错等级,可选参数为'L''M''Q''H'version参数表示二维码的版本号。

QRCode.png(file, scale=1, module_color=[0, 0, 0, 255], background=[0xff, 0xff, 0xff])

将二维码保存为PNG格式的文件。file参数表示文件名或文件对象;scale参数表示二维码放大倍数,可选值为正整数;module_color参数表示二维码的前景色,为RGBA格式的列表,可选值是0到255之间的四个整数;background参数表示二维码的背景色,为RGB格式的列表,可选值是0到255之间的三个整数。

对比

qrcodepyqrcode两个库各有优劣。qrcode库的可定制性更高,而pyqrcode的代码简洁易读并且使用更加便捷。在选择使用哪一个库时,需要考虑二维码的需求及其定制程度。

结语

本篇文章介绍了使用Python制作二维码的两个库:qrcodepyqrcode。其中,qrcode提供了更大的灵活性和定制性,而pyqrcode则更简洁、易懂。在实际使用中,可以根据需要选择适合自己的库。