首页 > 在Ubuntu 16.04.5 LTS上使用python第三方库QRCode 6.0生成二维码实录

在Ubuntu 16.04.5 LTS上使用python第三方库QRCode 6.0生成二维码实录

简介

二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明。现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。

下面是我使用qrcode生成的自己博客的二维码,欢迎关注。

可以使用python提供的qrcode库来快速生成二维码,该库的官方地址是

https://pypi.org/project/qrcode/

目前最新的版本是6.0,参见

安装依赖库

下面的例子中需要用到依赖库pillow,它是PIL的fork,它们之间关系和兼容错综复杂,两者只能存在一个。我们这里是只安装pillow

PIL(Python Imaging Library)是Python常用的图像处理库,而Pillow是PIL的一个友好Fork,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。

安装pillow和qrcode

这里给出的例子只需要qrcode和pillow就可以了。

sudo pip qrcode

sudo pip pillow

sudo pip install matplotlib

 

使用方法

可以使用命令行和python代码两种形式来生成二维码

1.命令行方式

等qrcode安装好之后,在命令行可以直接执行qr命令

在命令行直接执行下面的代码,将会在当前目录下面生成指定的二维码图片

qr "tao_627" > test.png

qr --factory=svg-path "Some text" > test1.svg

qr --factory=svg "Some text" > test2.svg

qr --factory=svg-fragment "Some text" > test3.svg

 

2.python代码方式

这其中又分为简单玩法和高级玩法,参见官网上面的样例

简单玩法的样例

#!/usr/bin/env python
#encoding: utf-8
#date: 2018-12-17
#description: 演示Python版本的QR Code generator库的简单用法import qrcodeimg = qrcode.make('Some data here')
img.save('demo1.png')

高级玩法的样例

#!/usr/bin/env python
#encoding: utf-8
#date: 2018-12-17
#description: 演示Python版本的QR Code generator库的高级用法import qrcodeqr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4,)
qr.add_data('Some data')
qr.make(fit=True)img = qr.make_image(fill_color="black", back_color="white")
img.save('demo2.png') 

参数含义:

version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。

error_correction:控制二维码的错误纠正功能。可取值下列4个常量。

  ERROR_CORRECT_L:大约7%或更少的错误能被纠正。

  ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。

  ROR_CORRECT_H:大约30%或更少的错误能被纠正。

box_size:控制二维码中每个小格子包含的像素数。

border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)

执行如下

python qrcode_demo1.py

python qrcode_demo2.py

将会在当前目录下面生成demo1.png和demo2.png的图片,使用微信等扫描二维码,会显示我们设置的数据"Some data here"和“Some data”

参考文献

[1].https://www.cnblogs.com/linjiqin/p/4140455.html

 

更多相关: