使用Python生成QR码

使用Python生成QR码

了解QR码

  1. QR码是一种二维像素化形式的可机读条形码。
  2. QR码可用于存储各种数据。
  3. QR中的QR码是”Quick Response”的缩写。
  4. QR码是1994年由日本汽车制造商电装波尔公司的工程师原正宽发明的,用于追踪汽车部件的移动。
  5. QR码的流行程度在2010年代后期随着手机光学性能的提高和广泛接受而增加。
  6. 目前,QR码正在被广泛用于各种应用,例如在线支付、查看酒店菜单、共享Wi-Fi密码、获取产品的成本和其他信息等等。
  7. QR码已经变得如此著名,以至于现在每个新的智能手机都内置了一个QR码阅读器。

在接下来的教程中,我们将学习使用Python编程语言生成和读取QR码。

所以,让我们开始吧。

使用Python生成QR码

Python是一种编程语言,提供了不同的模块和包,可以用来生成QR码。在本教程中,我们将使用qrcode包来生成代码。

然而,为了开始使用该包,我们必须安装它。

安装Python qrcode包

我们可以使用pip安装程序来安装 qrcode 包,使用以下命令:

语法:

$ pip install qrcode

该软件包将以Python和pip的版本安装在系统中。

验证安装

为了检查软件包是否已正确安装在系统中,我们可以尝试导入该软件包并执行程序。

一旦安装完成,创建一个新的Python文件,并在其中输入以下语法。

示例:

# importing the required module
import qrcode

现在,保存文件并在命令提示符中使用以下命令运行文件。

语法:

$ python <file-name>.py

如果程序在运行时没有引发任何导入错误,则说明该模块已正确安装。否则,建议重新安装该软件包并参考其官方文档。

现在,让我们开始使用 qrcode 库。

生成一个简单的QR码

我们可以使用 qrcode 的make函数生成一个简单的QR码,并将数据作为其参数传递。

让我们考虑以下示例,它生成一个读取”Welcome to Javatpoint”的QR码。

示例:

# importing the qrcode library
import qrcode
# generating a QR code using the make() function
qr_img = qrcode.make("Welcome to Javatpoint.")
# saving the image file
qr_img.save("qr-img.jpg")

输出:

使用Python生成QR码

解释:

在上面的代码片段中,我们导入了 qrcode 库,并定义了一个变量,该变量使用 qrcode 库的 make() 函数生成了一个QR代码。然后,我们使用 save() 函数将QR代码保存在目录中。

我们可以使用智能手机来读取上面的QR代码。

注意: 不要使用智能手机来读取随机的QR代码,因为它们可能包含恶意代码/链接。

生成高级QR代码

程序员可以使用 QRCode 对象来自定义QR代码,该对象包含以下表格中显示的参数:

序号 参数 描述
1 版本 二维码有四十个版本,决定了二维码的尺寸大小。版本1是最小的,而版本40是最大的。版本1会生成一个21×21的矩阵二维码。
2 错误纠正 这个参数用于控制二维码的错误纠正程度。错误纠正程度可以在7%到30%之间。具体如下:
1. ERROR_CORRECT_L: 最多纠正7%
2. ERROR_CORRECT_M: 最多纠正15%
3. ERROR_CORRECT_Q: 最多纠正25%
4. ERROR_CORRECT_H: 最多纠正30%
3 方块尺寸 这个参数用于控制二维码中每个方块的像素数量。
4 边框 这个参数用于控制二维码的边框厚度。默认边框厚度为4个像素。

我们可以使用 QRCode 对象的以下函数来创建QR码。

序号 功能 描述
1 add_data() 我们可以将QR码的内容作为参数传递给这个函数。
2 make() 在我们不确定使用哪个版本的QR码时,可以通过以下方式自动设置版本:
1. 将 version 参数设置为 None,
2. 将 make() 函数的 fit 参数设置为 True.
3 make_image() 这个函数用于生成QR码。我们还可以通过 fill_colorback_color 参数来设置QR码的填充颜色和背景颜色。

让我们考虑以下示例,以便生成一个指向Python教程的QR码。

示例:

# importing the qrcode module
import qrcode
# creating a QRCode object
obj_qr = qrcode.QRCode(
    version = 1,
    error_correction = qrcode.constants.ERROR_CORRECT_L,
    box_size = 10,
    border = 4,
)
# using the add_data() function
obj_qr.add_data("https://www.javatpoint.com/python-tutorial")
# using the make() function
obj_qr.make(fit = True)
# using the make_image() function
qr_img = obj_qr.make_image(fill_color = "cyan", back_color = "black")
# saving the QR code image
qr_img.save("qr-img1.png")

输出:

使用Python生成QR码

解释:

在上面的代码片段中,我们导入了 qrcode 库。然后,我们创建了 qrcode 库的 QRCode 类的实例。我们使用不同的参数来定制QR代码。然后,我们使用 add_data() 函数来包含QR代码的信息。我们还使用 make()make_image() 函数来生成QR代码图像。最后,我们使用 save() 函数将图像文件保存在目录中。

如何读取QR代码?

我们将利用 OpenCV 库来读取QR代码。如果系统中未安装该库,我们可以使用以下命令使用pip安装它:

语法:

$ pip install cv2

一旦安装完成,我们可以进入QR码的解码部分。为了解码QR码,我们将使用 QRCodeDetector 对象的 detectAndDecode 函数。

让我们考虑相同的代码片段。

示例:

# importing the OpenCV library
import cv2
# reading the image
qr_img = cv2.imread("qr-img1.png")
# using the QRCodeDetector() function
qr_det = cv2.QRCodeDetector()
# using the detectAndDecode() function
val, pts, st_code = qr_det.detectAndDecode(qr_img)
# printing the value
print("Information:", val)

输出:

Information: https://www.javatpoint.com/python-tutorial  

解释:

在上面的代码片段中,我们导入了cv2库。然后我们使用imread()函数从目录中读取图像,并使用QRCodeDectector()函数检测图像中的QR码。然后我们使用detectAndDecode()函数并打印了用户的值。

结果是,detectAndDecode函数返回了QR码的内容、盒子角落的坐标和二值化的QR码。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程