Python与二维码

我们先来简单了解一下二维码。

二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在二维平面上分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的 “0”、“1” 比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。

二维码有许多的码制,有PDF417、QR Code、Code 49、Code 16K、Code One等。我们在日常生活中常见的是QR Code(Quick Response Code),相对于传统的条形码(Bar Code),它能够存储更多的信息,也能表示更多的数据类型。因为在日常生活中较为常见,所以二维码又被直接称作QR Code。


接下来我们了解一下二维码的大致结构。

根据标准(ISO/IEC 18004),我们可以了解到 QR 码结构如下:

QRstructure

1、功能图形

功能图形是不参与编码数据的区域。它包含空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形五大模块。

2、 编码区域

编码区域是数据进行编码存储的区域,它由格式信息、版本信息、数据和纠错码字三部分构成。


二维码已有一套国际标准,绘制二维码的过程要严格按照标准来执行。而这个过程比较复杂,下面总结出了大致绘制过程。

二维码的绘制大概过程如下:


我们用Python来处理二维码,这里仅简单提几个Python的第三方库,抛个砖头,详细的使用方法可以去看官方文档。(其实就是懒了 XD)

1、 Myqr

Github

2、 python-qrcode

Github

上面2个都是生成二维码的,下一个是解码的。

3、 pyzbra

Github