使用 Python 的库 qrcode 生成二维码
现在有很多二维码的生成工具,在线的,或者安装的软件,都可以进行生成二维码。
今天我用 Python 的 qrcode 库生成二维码。#需要预先安装 Image 库
安装
用 pip 安装
# pip install Image
pip install qrcode
使用源码安装
git clone git@github.com:lincolnloop/python-qrcode.git
cd python-qrcode
python setup.py install
查看安装信息
pip show qrcode
命令行
qrcode 提供了生成二维码的命令,这个很符合程序员装逼的风格。qr 'Some data' > test.png
我上传的二维码就是用这个命令生成的
代码生成
首先需要导入 qrcode 模块,然后调用 make 方法,会生成一个图片对象,调用图片对象的 save 方法就可以将生成的二维码保存下来了。
import qrcode
img = qrcode.make("扫一扫需要展示的信息")
img.save("xinxing.png")
更多的设置
上面两种方式都是按照 qrcode 默认的方式生成二维码,如果我们希望生成不同尺寸的二维码就需要使用 QRCode 类了。
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('扫一扫需要展示的信息')
qr.make(fit=True)
img = qr.make_image()
img.save('xinxingzhao.png')
version 表示二维码的版本号,二维码总共有 1 到 40 个版本,最小的版本号是 1,对应的尺寸是 21×21,每增加一个版本会增加 4 个尺寸。这里说的尺寸不是只生成图片的大小,而是值二维码的长宽被平均分为多少份。
errorcorrection 指的是纠错容量,这就是为什么二维码上面放一个小图标也能扫出来,纠错容量有四个级别,分别是
ERROR_CORRECT_L L 级别,7% 或更少的错误能修正
ERROR_CORRECT_M M 级别,15% 或更少的错误能修正,也是 qrcode 的默认级别
ERROR_CORRECT_Q Q 级别,25% 或更少的错误能修正
ERROR_CORRECT_H H 级别,30% 或更少的错误能修正
boxsize 指的是生成图片的像素
border 表示二维码的边框宽度,4 是最小值
生成其他类型的二维码
我们可以将二维码转化为 SVG(矢量图),命令行的方式:
qr --factory=svg-path "xinxingzhao" > xinxingzhao.svg
qr --factory=svg "xinxingzhao" > xinxingzhao.svg
qr --factory=svg-fragment "xinxingzhao" > xinxingzhao.svg
使用 python 代码的方式:
import qrcode
import qrcode.image.svg
if method == 'basic':
# Simple factory, just a set of rects.
factory = qrcode.image.svg.SvgImage
elif method == 'fragment':
# Fragment factory (also just a set of rects)
factory = qrcode.image.svg.SvgFragmentImage
else:
# Combined path factory, fixes white space that may occur when zooming
factory = qrcode.image.svg.SvgPathImage
img = qrcode.make('xinxingzhao', image_factory=factory)
有些类似的业务场景,可以将信息直接存成二维码,方便分类存放和信息查找 😏