盒子
盒子

初探二维码生成

最近一直在折腾各种图像的东西,过一段时间要整理一下,且说一下今天的二维码生成。

在python万能的各种库面前,大部分你想做的工作基本上都有了现成的工作,虽然不需要知道二维码的原理就可以简单的生成,但是看一下历史、原理什么的总归是好的。http://www.qrcode.com/zh/history/。经过之前查找资料,发现英文版的网站内容竟然比汉语的多,由于不懂日语,所以也没看日文版的。

二维码生成的库https://pypi.python.org/pypi/qrcode, 安装很简单,直接

1
sudo pip install qrcode

即可。

然后在官网上有简单的介绍,最简单的是直接在命令行里面输入

1
qr 'hello, world!' > 'hello.jpg'

即可直接生成一个名字为hello.jpg的最简单的二维码文件.
当然我们也可以在一个python程序里面运用这个,一切也是很简单的。再加上强大的PIL库,生成一个带自己logo的二维码是妥妥的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python
# coding=utf-8
# Author = huhuhushan
from qrcode import *
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
data = 'http://code4fun.me'
qr = QRCode(version=20, error_correction=ERROR_CORRECT_L)
qr.add_data(data)
qr.make()
im = qr.make_image()
draw = ImageDraw.Draw(im)
xsize, ysize = im.size
subim = Image.open('logo.jpg')
subim = subim.resize((200, 200))
im.paste(subim, (xsize/2-100, ysize/2-100, xsize/2+100, ysize/2+100))
im.resize((50, 50))
im.show()
im.save('test2.jpg')

下面就来一个示例,具体的代码可以参见我的github:https://github.com/zhangzhishan/python-scripts, 会不定期写一些小脚本。