使用 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

我上传的二维码就是用这个命令生成的

使用 Python 的库 qrcode 生成二维码

代码生成

首先需要导入 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)