推荐阅读时间:6min~8min 主题:Python生成二维码
二维码在当今社会是一个很常见的功能,如何使用 Python 来生成二维码呢?这里我们借助 qrcode 工具来生成我们需要的二维码。
通过 pip 命令来安装 qrcode。
pip install qrcode[pil]
可以使用 make
方法快速生成一个二维码,比如说,我想要将 脑洞大开 的网站地址转为二维码,可以如下生成:
import qrcode
img = qrcode.make("http://www.naodongopen.com/")
# 展示生成的二维码
img.show()
除了可以使用make快速成成一个二维码之外,如果想要控制更多参数,可以使用以下高级用法。
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data("http://www.naodongopen.com/")
qr.make(fit=True)
# 设置填充所用的颜色以及背景色
img = qr.make_image(fill_color="green", back_color="white")
# 展示生成的二维码
img.show()
来解释下参数:
有时候我们想要将生成的二维码中间附上图标,这时我们只需要借助 Pillow 就可以完成,没有的话首先安装它。
pip install Pillow
安装完成后,来看下如何在二维码中添加图标。
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data("http://www.naodongopen.com/")
qr.make(fit=True)
# 设置填充所用的颜色以及背景色
img = qr.make_image(fill_color="green", back_color="white")
from PIL import Image
# 读取需要添加的图标
icon =Image.open("robot.png")
img_w, img_h =img.size
factor =4
size_w =int(img_w /factor)
size_h =int(img_h /factor)
icon_w, icon_h =icon.size
if icon_w > size_w:
icon_w =size_w
if icon_h > size_h:
icon_h =size_h
icon =icon.resize((icon_w, icon_h), Image.ANTIALIAS)
w =int((img_w -icon_w) /2)
h =int((img_h -icon_h) /2)
img.paste(icon, (w, h), icon)
# 展示生成的二维码
img.show()
# 保存生成的二维码
img.save("qrcode.png")
需要注意的是:由于生成的二维码是png格式,所以读入的图标也需要是png格式文件,如果是其他格式(例如jpg),会报错以下错误。
ValueError: bad transparency mask
可以看到,想要将生成的二维码保存也只需要调用 img.save("qrcode.png")
即可。