文章目录
- 安装 qrcode 库
- 生成简单的二维码
- 代码讲解
- 生成自定义样式的二维码
- 代码讲解
- 生成带有链接的二维码
- 代码讲解
- Demo
- 代码实现
- 代码讲解
- 总结
收录专栏: [Python]
二维码是现在非常常用的一种信息存储和传递方式,我们可以通过扫描二维码来快速获取文本、链接、联系方式等多种信息。在 Python 中,我们可以使用 qrcode
库轻松生成二维码,并通过一些自定义样式让它变得更加个性化。
本文将详细介绍如何使用 Python 的 qrcode
库生成各种样式的二维码,并提供相关的代码示例和讲解。
目录
- 安装 qrcode 库
- 生成简单的二维码
- 生成自定义样式的二维码
- 生成带有链接的二维码
- 可莉的小创作
安装 qrcode 库
在生成二维码之前,我们首先需要安装 qrcode
库。你可以通过以下命令在终端或命令行中安装它:
pip install qrcode[pil]
注意:
[pil]
是为了确保你同时安装了Pillow
库,这是处理图像的必需库。
安装成功后,我们就可以开始使用 qrcode
生成二维码了。
生成简单的二维码
首先,我们先来看一下如何生成一个最基础的二维码。在这个例子中,我们将生成一个简单的二维码,并保存为图片文件。
import qrcode
# 生成简单的二维码
img = qrcode.make('you are a pig.')
# 保存生成的二维码
img.save('test.png')
代码讲解
qrcode.make('you are a pig.')
:使用qrcode.make()
方法,直接生成了一个包含文本的二维码,文本内容是"you are a pig"
。img.save('test.png')
:将生成的二维码图片保存为test.png
文件。
生成的二维码将包含指定的文本信息,用户扫描二维码后可以看到 "you are a pig"
。
生成自定义样式的二维码
在生成二维码时,我们可以自定义二维码的样式,比如调整二维码的大小、设置不同的容错等级,甚至在二维码上嵌入 Logo 图像。下面是一个更加复杂的例子:
import qrcode
from PIL import Image
# 定义要生成二维码的内容
data = "Hello, World!"
# 创建QRCode对象并自定义设置
qr = qrcode.QRCode(
version=1, # 设置二维码的版本
error_correction=qrcode.constants.ERROR_CORRECT_H, # 设置错误纠正等级
box_size=10, # 每个小格子的大小
border=4, # 边框的宽度
)
# 将数据添加到QRCode对象中
qr.add_data(data)
qr.make(fit=True)
# 生成二维码图像并设置前景色和背景色
img = qr.make_image(fill_color="black", back_color="white")
# 打开一个Logo图片并将其粘贴到二维码上
logo = Image.open("logo.png")
# 获取二维码的尺寸
img_width, img_height = img.size
logo = logo.resize((img_width // 5, img_height // 5)) # 调整Logo的大小
logo_position = ((img_width - logo.size[0]) // 2, (img_height - logo.size[1]) // 2)
# 将Logo粘贴到二维码的中央
img.paste(logo, logo_position)
# 保存生成的二维码图像
img.save("custom_qrcode.png")
# 显示生成的二维码图像
img.show()
代码讲解
- QRCode 对象的创建:
version=1
:指定二维码的大小,值越大,二维码的尺寸越大。version
取值范围为 1 到 40。error_correction=qrcode.constants.ERROR_CORRECT_H
:设置二维码的容错率,ERROR_CORRECT_H
表示最高等级,可以纠正约 30% 的错误。box_size=10
:设置二维码中每个小方格的大小,值越大,二维码越大。border=4
:设置二维码边框的厚度。
- 生成二维码:
qr.add_data(data)
:将数据添加到 QRCode 对象中。qr.make(fit=True)
:自动调整二维码大小以适应数据。
- 自定义图像:
img.paste(logo, logo_position)
:将 Logo 粘贴到二维码的中间。
最终生成的二维码将包含指定内容,并嵌入一个 Logo 图像。你可以根据需要自定义前景色和背景色。
生成带有链接的二维码
二维码最常见的用法之一是将 URL 嵌入到二维码中,扫描二维码后可以自动跳转到某个网页。以下是如何生成带有链接的二维码:
import qrcode
# 定义要生成二维码的链接
link = "https://www.example.com"
# 创建QRCode对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_Q, # 设置错误纠正等级为 Q (约25%可修复)
box_size=10,
border=4,
)
# 将链接添加到QRCode对象中
qr.add_data(link)
qr.make(fit=True)
# 生成二维码图像
img = qr.make_image(fill_color="black", back_color="white")
# 保存二维码
img.save("link_qrcode.png")
# 显示二维码
img.show()
代码讲解
- 链接嵌入:将
"https://www.example.com"
作为数据添加到二维码中,生成的二维码会包含该链接,用户扫描后会自动跳转到该网站。 - 容错率设置:
ERROR_CORRECT_Q
设置二维码的容错率为 Q 级(约 25% 容错能力),即使二维码部分损坏,也可以正常读取链接。
Demo
接下来是一个创意实现,生成一个包含个人名片信息的二维码。我们将通过生成的二维码传递个人名片信息,如姓名、邮箱、电话等。
代码实现
import qrcode
# 定义个人名片信息
vcard_data = """BEGIN:VCARD
VERSION:3.0
FN:Alice Smith
TEL:+1234567890
EMAIL:alice@example.com
END:VCARD"""
# 创建QRCode对象
qr = qrcode.QRCode(
version=2,
error_correction=qrcode.constants.ERROR_CORRECT_M, # 容错率中等
box_size=10,
border=4,
)
# 将个人名片信息添加到QRCode对象中
qr.add_data(vcard_data)
qr.make(fit=True)
# 生成二维码图像
img = qr.make_image(fill_color="black", back_color="white")
# 保存二维码
img.save("vcard_qrcode.png")
# 显示二维码
img.show()
代码讲解
- 个人名片信息:我们使用
vCard
格式嵌入名片信息,名片信息包括姓名(FN
)、电话号码(TEL
)和电子邮件(EMAIL
)。 - 生成二维码:二维码生成后,用户扫描该二维码时,可以快速保存名片信息到手机中。
总结
通过本文的学习,你应该掌握了如何使用 Python 的 qrcode
库生成各种二维码,包括简单的文本二维码、带有自定义样式和 Logo 的二维码,以及嵌入链接或名片信息的二维码。
生成二维码的过程非常简单,qrcode
库提供了强大的功能,可以轻松自定义二维码的大小、容错率、颜色等。同时,你还可以使用 Pillow
库在二维码中嵌入 Logo 图像,使二维码更加个性化。
通过本文中的代码示例,你可以生成自己的二维码并将其应用到日常开发中。无论是分享网址、嵌入名片信息还是创建个性化二维码,你都可以轻松实现。