用 Qrcode 来快速生成二维码

本篇文章讲述如何在 Python 环境中使用 qrcode 模块来生成个性化二维码图片。同事如果你对这块东西感兴趣,我推荐你阅读我的 workflow 开发指南,你可以开发一个生成二维码的 workflow,其应用场景还是非常广泛的,如讲一个链接快速转换成二维码。

QrCode 官方地址在这里

安装模块

在安装 qrcode 之前,我们需要首先安装 PIL, 但是在我们尝试安装时候,却会报错,在 Linux 系统下很少会出现安装一个模块出错的情况,网上 Goolge 之后,发现 PIL 对于 Python 2.7 以及 Python 3.X 都还尚未支持,替代的解决方案是安装 pillow:

pip install pillow

安装好预备模块之后,按照 qrcode 吧,也是很简单:

pip install qrcode

安装好上述之后,我们简单的进入 Python 环境检测一下,即:

import qrcode

初次尝试

没有错误即验证安装成功。紧接着我们按照官方文档提示,初次实验一下,复制如下命令进入命令行:

qr "Just a test" > test.png

当然我们也可以不借助于作者提供的 qr 脚本,直接写入 Python 文件中:

import qrcode
img = qrcode.make('Just a test')
img.save("test.png")

运行完成之后,顺利在当前工作目录下生成一张名为 test.png 的二维码,如下图所示:

接着我们当然用微信扫一扫这张二维码图片啦,顺利会在你的手机界面上显示: Just a test。

个性化定制

我们来尝试一下为你的网站生成一张定制的二维码呗:

#coding=utf-8
import qrcode
qr = qrcode.QRCode(
	version=2,# 取值 1-40 相应大小也不同
	error_correction=qrcode.constants.ERROR_CORRECT_L,# 指的是纠错容量,
    #这就是为什么二维码上面放一个小图标也能扫出来,纠错容量有四个级别
	box_size=10,# 指的是生成图片的像素
	border=1 # 表示二维码的边框宽度,4是最小值
)
qr.add_data("http://allenwu.itscoder.com/")
qr.make(fit=True)
img = qr.make_image()
img.save("allenwu.png")

生成二维码如下所示,当你用手机扫一扫之后,就能跳转到指定的网站啦:

支持 SVG

QRCODE 非常牛逼的支持了 SVG 格式的图标生成, 按照官方文档你可以按照如下三个方式生成:

qr --factory=svg-path "Some text" > test.svg
qr --factory=svg "Some text" > test.svg
qr --factory=svg-fragment "Some text" > test.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('Some data here', image_factory=factory)
Back

评论或交流:wuchangfeng2015@gmail.com