使用 Python 生成吸引人的二维码

2025年3月17日 | 阅读 8 分钟

在本教程中,我们将学习如何使用 Python 代码生成精美的二维码。我们还将讨论更改二维码大小、格式化二维码边框、旋转以及创建动画二维码。

正如我们日常生活中所见,二维码有许多用途,而且它们也可以看起来很吸引人。在本教程中,您将了解如何使用 Python 为您的特定需求创建具有视觉吸引力的二维码。

最简单的二维码由白色背景上的黑色方块和点组成。它包含可以被任何智能手机或带有二维码扫描仪的设备解码的数据。与以水平线存储信息的普通条形码不同,二维码以二维方式存储数据,使其能够容纳一百倍以上的信息量。

过去,二维码主要是黑白的。然而,由于创意进步,二维码现在有各种形状、大小和颜色。如果您有兴趣了解如何设计不限于两种颜色,而是可以丰富多彩和艺术化的二维码,那么本教程正是您所寻找的。

使用 Python 生成基本二维码

要生成基本二维码,我们需要安装 segno 库。我们可以使用以下命令进行安装。

安装库后,我们将创建一个 Python 文件并编写代码来生成二维码。

示例 -

输出

Generate Attractive QR Codes Using Python

在上面的代码片段中,我们编写了通过将消息“Hello, World”作为输入传递给 make_qr() 函数来对其进行编码的代码。此操作将向您的用户显示一条欢迎消息,并且还可能为他们提供在线搜索“Hello, World”的选择。

为了生成一个既可查看又可扫描的黑白二维码,我们首先需要对内容进行编码并将其存储为变量。之后,我们可以使用 .save() 方法将二维码保存为图像。以下是如何建立一个名为 qrcode 的变量来将消息“Hello, World”编码成黑白二维码对象的示例。随后,您将此二维码保存为 PNG 文件,并将其命名为 simple_qr.png。

`.save()` 方法执行将二维码转换为您选择的文件格式的任务,前提是所选格式受支持。在包含编码内容的变量上使用 `.save()` 时,必须指明文件名,其中可能包含可选的文件路径。在前面的示例中,二维码图像以“simple_qrcode.png”的形式保存在您运行代码的同一目录中,无需指定单独的文件路径。

完成此步骤后,它将生成一个黑白二维码,您可以在保存的文件中看到。

更改二维码大小

在本节中,我们将学习更改二维码的大小。要修改二维码的尺寸,您可以在使用 .save() 方法时包含一个 scale 参数。此 scale 参数充当缩放因子,允许您调整二维码图像的宽度和高度。我们以上一个二维码作为参考。让我们了解以下示例。

示例 -

输出

Generate Attractive QR Codes Using Python

如我们所见,通过将 .save() 方法应用于您的二维码对象并设置 scale 参数为 5,可以调整您的模块大小。

格式化二维码边框

为了提高二维码的扫描便利性,确保智能手机等设备可以轻松解读信息;Segno 在二维码周围包含了一个空白区域,称为“静区”。您还可以通过修改 .save () 方法中的“border”参数来调整此静区的大小。

您可以通过在 save() 方法中为 border 参数提供一个整数值来控制二维码周围的边距大小。默认的静区大小在每侧包含四个模块。您也可以完全移除静区,这可以通过在 `.save()` 方法中设置“border=0”来实现。在以下代码中,您将从二维码中移除边框。让我们了解以下示例。

示例 -

输出

解释 -

在上面的代码中,我们命名了 wide_border_qrcode.py,并在 save() 方法中将 border 参数的 border 值设置为 10。

由于二维码和静区都具有白色背景,您可能需要放大才能注意到二维码周围较宽的边距。理想情况下,您应该能够自定义背景或静区的颜色。在下一节中,您将了解如何使用 Python 生成更鲜艳多彩的二维码。这将允许您修改背景颜色、静区颜色以及数据模块颜色。

更改二维码颜色

您可以创建您喜欢的颜色的二维码,您可以使用 .save() 方法中的可选参数为您的二维码添加更多颜色。在本节中,您将能够自定义背景颜色、静区颜色以及二维码的亮模块和暗模块。只需指定适当的关键字和您选择的颜色即可。您可以灵活地使用 RGB 格式、颜色名称甚至十六进制值 (#RRGGBB)。

例如,如果您想将背景颜色更改为浅蓝色,您可以在 .save() 方法中包含 light='lightblue'。

示例 -

输出

Generate Attractive QR Codes Using Python

在上面的 Python 代码中,我们命名为“colored_qrcode.py”,我们将 .save() 方法中的“light”参数配置为获得浅蓝色背景。此调整将默认的白色背景替换为柔和的浅蓝色背景。

您可以灵活地用 RGB 格式或十六进制值替换颜色名称。例如,如果您更喜欢使用 RGB 格式将背景设置为浅蓝色,您可以将“light='lightblue'”替换为“light=(173, 216, 230)”。或者,您可以使用十六进制值,例如“light='#ADD8E6'”来代替“light='lightblue'”。

您还可以选择自定义二维码中所有黑色模块的颜色。为此,只需将您喜欢的颜色值分配给 .save() 方法中的“dark”参数即可。让我们了解以下示例 -

示例 -

在这种情况下,静区可能不那么显眼,因为背景颜色是白色。事实上,您可能需要放大图像才能清楚地看到边距。您可以通过在 .save() 方法中指定您喜欢的颜色来修改背景颜色。

您可以通过更改静区的颜色来进一步自定义您的二维码图像。为此,您可以在 .save() 方法中引入一个 quiet_zone 参数。这是一个示例,说明如何增强“darkblue_qrcode.py”以将二维码周围区域的颜色从白色切换为栗色。

示例 -

输出

Generate Attractive QR Codes Using Python

要修改二维码中深色数据模块的颜色,您可以使用 .save() 方法中的“data_dark”参数提供您喜欢的颜色。例如,如果您想将深色数据模块的颜色转换为绿色,您可以创建一个名为 "green_datamodules_qrcode.py" 的 Python 脚本,并在 .save() 方法中插入 "data_dark=green"。

旋转二维码

segno 模块允许您将二维码的方向更改为不同的角度,使其适用于各种用例。旋转二维码对于需要从非常规角度或方向扫描二维码的场景非常有用。

要生成具有更复杂图形增强功能的二维码,您需要安装必要的依赖项,特别是 qrcode-artistic 和 pillow。

安装这些库后,我们可以使用两个高级方法 - .to_pill().to_artistic() 来制作二维码 make_qr()。这将把二维码转换为 Pillow 图像。

示例 -

输出

Generate Attractive QR Codes Using Python

解释 -

要进行旋转,您需要在 .to_pil().rotate() 方法中指示旋转角度。需要记住的一点是,旋转方向是逆时针的。利用 .to_pil() 方法并在 .rotate() 方法中指定旋转角度,您编写了生成黑白二维码的代码,旋转了 45 度。最后,您对 qrcode_rotated 变量使用了 .save() 方法。

创建动画二维码

在本节中,我们将学习如何通过将静态背景替换为动画图像(例如 GIF)来创建动画二维码。要生成以动画图像作为背景的二维码,首先创建一个名为 animated_qrcode.py 的 Python 文件。在以下示例中,我们创建了一个包含 Justine Bieber 歌曲“Baby”的 YouTube 链接的二维码对象。

示例 -

在上面的代码中,我们使用 make_qr() 函数创建了一个二维码对象。当用户扫描此二维码时,它将显示歌曲的 YouTube 链接。

为了使其动画化,我们将使用 urllib 库及其函数 urlopen()。让我们了解以下示例。

示例 -

最后一步是对您的二维码对象使用 `.to_artistic()` 方法。此操作将用动态背景替换固定背景。下面,您编写了生成 5x5 像素模块二维码的过程。

结论

在本教程中,我们探讨了如何使用 Python 创建美观实用的二维码。二维码已成为我们日常生活中重要的一部分,使其具有视觉吸引力可以增强用户体验。

我们从基础开始,编码消息并生成黑白二维码。我们学习了如何使用 Segno 库调整它们的大小、控制静区甚至旋转它们。

接下来,我们探索了创建彩色二维码,让我们能够个性化背景、静区和模块颜色。我们讨论了使用颜色名称、RGB 格式和十六进制值来获得我们想要的外观。