📜  在Python中使用 qrcode 生成二维码(1)

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

在 Python 中使用 qrcode 生成二维码

简介

二维码是一种可以快速扫描获取信息的编码方式,它已经普及到了我们的生活中的各个领域。在 Python 中,使用 qrcode 库可以方便地生成二维码。

安装 qrcode

要使用 qrcode 库,首先需要安装它。在命令行中执行以下命令即可:

pip install qrcode
生成普通二维码

使用 qrcode 生成二维码非常简单。以下是一个生成普通二维码的示例代码:

import qrcode

# 创建二维码对象
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4)

# 设置数据
data = "https://www.example.com"

# 添加数据到二维码
qr.add_data(data)

# 填充数据并生成二维码
qr.make(fit=True)

# 生成图片对象
img = qr.make_image(fill_color="black", back_color="white")

# 保存图片
img.save("example.png")

代码说明:

  • qrcode.QRCode 类用于创建二维码对象,需要指定二维码版本、纠错级别、方块大小和边框大小等参数。
  • qr.add_data 方法用于设置要编码的数据。
  • qr.make 方法用于填充数据并生成二维码。
  • qr.make_image 方法用于生成二维码图片对象。可以设置前景色和背景色。
  • img.save 方法用于保存二维码图片。
生成带 logo 的二维码

如果想要在二维码中添加一个 logo,也非常容易。以下是一个生成带 logo 的二维码的示例代码:

import qrcode
from PIL import Image

# 创建二维码对象
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4)

# 设置数据
data = "https://www.example.com"

# 添加数据到二维码
qr.add_data(data)

# 填充数据并生成二维码
qr.make(fit=True)

# 生成图片对象
img = qr.make_image(fill_color="black", back_color="white")

# 加载 logo
logo = Image.open("example_logo.png")

# 计算 logo 大小
img_w, img_h = img.size
logo_w, logo_h = logo.size
factor = 4
s_w = img_w // factor
s_h = img_h // factor
if logo_w > s_w:
    logo_w = s_w
if logo_h > s_h:
    logo_h = s_h
logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS)

# 计算 logo 位置并粘贴到二维码上
l_w = (img_w - logo_w) // 2
l_h = (img_h - logo_h) // 2
img.paste(logo, (l_w, l_h))

# 保存图片
img.save("example_logo.png")

代码说明:

  • 加载 logo 图片,可以使用 PIL 库中的 Image.open 方法。
  • 根据二维码图片的大小计算 logo 的大小。这里采用了一个简单的算法:将二维码图片大小除以一个整数作为放缩比例。
  • 计算 logo 的位置,这里采用了将 logo 放在二维码中心的算法,有需要时可以自行修改。
  • 使用 Image.paste 方法将 logo 粘贴到二维码图片上。
结语

qrcode 是一个简单易用的 Python 库,可以用来生成不同类型的二维码。在实际应用中,可能还需要根据具体的需求进行一些调整,比如设置二维码的颜色、形状等等。