published on in Python

隐写术・QRCode

返回教程主页

上篇 隐写术・图像隐写术

上一节我们完成了将二值化图像存储在载体图像中的操作,为了方便存储更加丰富的讯息我们可以将二维码图像作为二值化的内容图像。

二维码的生成

使用Python的第三方二维码生成库qrcode就可以非常方便快速的生成二维码:

import qrcode

data = 'Hello, QRCode'
img = qrcode.make(data)
img.show()

通过qrcode.make方法可以将指定的文本内容编码成一张二维码图像,而返回的值是Pillow中的Image对象,可以很方便的使用Pillow提供的方法去编辑它。

二维码的识别

Python当中存在一些第三方的二维码识别工具但是对Windows平台支持不好,如果你和我一样是Linux/Ubuntu用户「可以是别的Linux」,或者你使用Mac OS,那么可以尝试一款叫做pyzbar的二维码识别库。

使用如下命令安装pyzbar:

pip install pyzbar

可以使用pyzbar提供的decode方法对一张二维码「Pillow.Image对象」进行解码:

from PIL import Image
from pyzbar.pyzbar import decode

img = Image.open('我的二维码.png')
print(decode(img.convert('L')))

在使用pyzbar.decode方法解码前最好对输入的Pillow图像进行转换得到灰度图像img.convert('L')

下篇 隐写术・图文隐写术