二维码是一种便捷的信息传输方式 – 本位我们学习如何使用 Python 生成它!

本文将作为您在 Python 中生成二维码的教程。我们将使用的库是qrcode,我们需要先安装它。

1.安装库

要安装库,请转到命令行,然后键入pip3 install qrcode。完成此步骤后,您有两种方式生成二维码,我将向您展示这两种方式。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ pip3 install qrcode

2.通过命令行:

第一种方法是通过命令行。cd到您想要的文件夹,然后只需键入qr “你要写入的文字” > 图片.png,然后您的文件夹将显示一个新形成的图像。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ qr "Linux迷(www.linuxmi.com)与您分享关于开源的新鲜事,Linux、编程、大数据、运维和数据库教程。" > www.linuxmi.com.png

现在,使用您的手机查看二维码中的内容。

如果你想要一些更高级的图片,比如 SVG,你可以将命令行作为  qr — factory="svg路径" "your_message" > 图片名字

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ qr — factory="www.linuxmi.com.svg" "Linux迷欢迎您,我们的网址:www.linuxmi.com" > linuxmi.com.png

3.Python:

命令行不是生成二维码的唯一方法,另一种方法 Python。另外,qrcode支持 Python 语言的更多功能,我想你会玩得更开心。

a、创建二维码:

在 Python 中创建二维码的方法非常简单。您只需导入库并放入所需的信息,然后将其保存在您的计算机上,如下所示:

import qrcode
img = qrcode.make('Linux迷欢迎您,我们的网址:www.linuxmi.com')
img.save("www.linuxmi.com.png")

除了基本的文字之外,您还可以将许多其他形式的数据放入您的二维码图像中:例如 Web URL、聊天组、数字等。发挥您的想象力!

b、设置您的二维码工厂:

当然,您可以设置生成二维码的方式:SVG、SVG片段。从人的角度来看,这实际上并不会影响前景,但你知道,如果你是个极客,这就是你可能想知道的技巧。

import qrcode
import qrcode.image.svg

factory = qrcode.image.svg.SvgImage
# factory = qrcode.image.svg.SvgFragmentImage
# factory = qrcode.image.svg.SvgPathImage

img = qrcode.make('你的数据', image_factory=factory)

import qrcode
import qrcode.image.svg

factory = qrcode.image.svg.SvgImage

img = qrcode.make('当年的大师兄 - Linux迷欢迎您,我们的网址:www.linuxmi.com', image_factory=factory)
img.save("www.linuxmi.com.svg")

上图是 svg 文件

可以生成3中不同的 SVG 图像
1、用路径表示的 SVG SvgPathImage
2、 用矩形集合表示完整的 SVG 文件 SvgImage
3、 用矩形集合表示的 SVG 片段 SvgFragmentImage

c、添加数据到二维码:

假设您现在得到一个二维码,并且您想在您尝试发送的原始消息之上添加一些信息,您可以使用qrcode提供的add_data方法!

import qrcode

qr = qrcode.QRCode()
qr.add_data('Linux迷(www.linuxmi.com)与您分享关于开源的新鲜事,Linux、编程、大数据、运维和数据库教程。')
qr.add_data('Linux迷欢迎您,我们的网址:www.linuxmi.com')
other_img = qr.make_image()

如果您想替换以前的信息,add_data也可以非常方便。您需要做的就是添加另一个clear()方法。

import qrcode

qr = qrcode.QRCode()
qr.add_data('your data1')
img = qr.make_image()
qr.clear()
qr.add_data('your data2')
other_img = qr.make_image()

4.使用OpenCV读取二维码:

如果我们不从我们生成的二维码中读取数据,那会有什么乐趣呢?当然,你可以用你的手机来检测消息,但我们是程序员,让我们用我们的方式再做一次。要从二维码读取消息,我们需要 OpenCV。要先安装它,请执行pip3 install opencv-python

然后,我们需要做的就是先将图像读取到我们的 Python 中,然后构建一个二维码检测器。最后,我们可以从二维码中读取数据了!

import cv2
img = cv2.imread("www.linuxmi.com.png")
detector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = detector.detectAndDecode(img)
print(data)
# Hello, there

您会看到我们从上面发布的二维码图片中提取消息。你有同样的信息吗?其他两个参数对我们的案例没有多大用处,但它们确实表示了一些东西。bbox表示我们的信息将在其中定义的形状,并且staright_qrcode将只是一个二值化矩阵表示,如果您愿意,可以使用 0 和 255 的 2D 数组。

好吧,这就是您在 Python 中读取和生成二维码所需要知道的全部内容!它非常简单,并在您的应用程序中使用它!

发表评论