二维码的工作原理是什么( 四 )


Remainder Bits
最后再加上Reminder Bits , 对于某些Version的QR , 上面的还不够长度 , 还要加上Remainder Bits , 比如:上述的5Q版的二维码 , 还要加上7个bits , Remainder Bits加零就好了 。关于哪些Version需要多少个Remainder bit , 可以参看QR Code Spec的第15页的Table-1的定义表 。
4、画二维码图
Position Detection Pattern
首先 , 先把Position Detection图案画在三个角上 。

二维码的工作原理是什么

文章插图
Alignment Pattern
然后 , 再把Alignment图案画上
二维码的工作原理是什么

文章插图
关于Alignment的位置 , 可以查看QR Code Spec的第81页的Table-E.1的定义表(下表是不完全表格)
二维码的工作原理是什么

文章插图
下图是根据上述表格中的Version8的一个例子(6 , 24 , 42)
二维码的工作原理是什么

文章插图
Timing Pattern
接下来是Timing Pattern的线(这个不用多说了)
二维码的工作原理是什么

文章插图
Format Information
再接下来是Formation Information , 下图中的蓝色部分 。
二维码的工作原理是什么

文章插图
Format Information是一个15个bits的信息 , 每一个bit的位置如下图所示:(注意图中的Dark Module , 那是永远出现的)
二维码的工作原理是什么

文章插图
这15个bits中包括:
5个数据bits:其中 , 2个bits用于表示使用什么样的Error Correction Level ,  3个bits表示使用什么样的Mask
10个纠错bits 。主要通过BCH Code来计算
然后15个bits还要与101010000010010做XOR操作 。这样就保证不会因为我们选用了00的纠错级别 , 以及000的Mask , 从重造成全部为白色 , 这会增加我们的扫描器的图像识别的困难 。
下面是一个示例:
关于Error Correction Level如下表所示:
关于Mask图案如后面的Table 23所示 。
Version Information
再接下来是Version Information(版本7以后需要这个编码) , 下图中的蓝色部分 。
Version Information一共是18个bits , 其中包括6个bits的版本号以及12个bits的纠错码 , 下面是一个示例:
而其填充位置如下:
数据和数据纠错码
然后是填接我们的最终编码 , 最终编码的填充方式如下:从左下角开始沿着红线填我们的各个bits , 1是黑色 , 0是白色 。如果遇到了上面的非数据区 , 则绕开或跳过 。
5、掩码图案
这样下来 , 图就填好了 , 但是 , 也许那些点并不均衡 , 所以还要做Masking操作QR的Spec中说了 , QR有8个 Mask可以使用 , 如下所示:其中 , 各个mask的公式在各个图下面 。所谓mask , 说白了 , 就是和上面生成的图做XOR操作 。Mask只会和数据区进 行XOR , 不会影响功能区 。
其Mask的标识码如下所示:(其中的i,j分别对应于上图的x,y)
二维码的工作原理是什么

文章插图
Mask过后的二维码就成最终的图了 。
【二维码的工作原理是什么】Baidu搜索“二维码应用平台” , 可以找到很多免费的软件使用

推荐阅读