返回教程主页
上篇 隐写术・图像隐写术
上一节我们完成了将二值化图像存储在载体图像中的操作,为了方便存储更加丰富的讯息我们可以将二维码图像作为二值化的内容图像。
二维码的生成
使用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:
可以使用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')
。
下篇 隐写术・图文隐写术