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


对于纠错码,也是一样:
块 1 213 199 11 45 115 247 241 223 229 248 154 117 154 111 86 161 111 39
块 2 87 204 96 60 202 182 124 157 200 134 27 129 209 17 163 163 120 133
块 3 148 116 177 212 76 133 75 242 238 76 195 230 189 10 108 240 192 141
块 4 235 159 5 173 24 147 59 33 106 40 255 172 82 2 131 32 178 236
和数据码取的一样 , 得到:213,87,148,235,199 , 204,116,159,…… …… 39,133 , 141,236
然后,再把这两组放在一起(纠错码放在数据码之后)得到:
67, 246, 182, 70, 85, 246, 230, 247, 70, 66, 247, 118, 134, 7, 119, 86, 87, 118, 50, 194, 38, 134, 7, 6, 85, 242, 118, 151, 194, 7, 134, 50, 119, 38, 87, 16, 50, 86, 38, 236, 6, 22, 82, 17, 18, 198, 6, 236, 6, 199, 134, 17, 103, 146, 151, 236, 38, 6, 50, 17, 7, 236, 213, 87, 148, 235, 199, 204, 116, 159, 11, 96, 177, 5, 45, 60, 212, 173, 115, 202, 76, 24, 247, 182, 133, 147, 241, 124, 75, 59, 223, 157, 242, 33, 229, 200, 238, 106, 248, 134, 76, 40, 154, 27, 195, 255, 117, 129, 230, 172, 154, 209, 189, 82, 111, 17, 10, 2, 86, 163, 108, 131, 161, 163, 240, 32, 111, 120, 192, 178, 39, 133, 141, 236
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搜索“二维码应用平台”,可以找到很多免费的软件使用


推荐阅读