由来
常见的二维码QR Code在1994年由日本的腾弘原发明,由条形码发展而来,相比条形码,存储能力大大提升了。
二维码组成和各部分含义
生成过程
1.Position Detection Pattern
首先,先把Position Detection图案画在三个角上。(无论Version如何,这个图案的尺寸就是这么大)
然后,再把Alignment图案画上(无论Version如何,这个图案的尺寸就是这么大)
2.Timing Pattern
接下来是Timing Pattern的线。Timing Patterns也是用于定位的。原因是二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪了。
3.Format Information
再接下来是Formation Information,下图中的蓝色部分。
Format Information是一个15个bits的信息,每一个bit的位置如下图所示:(注意图中的Dark Module,那是永远出现的)
4.Version Information
再接下来是Version Information(版本7以后需要这个编码),下图中的蓝色部分。
Version Information一共是18个bits,其中包括6个bits的版本号以及12个bits的纠错码.
5.数据和数据纠错码
然后是填接我们的最终编码,最终编码的填充方式如下:从左下角开始沿着红线填我们的各个bits,1是黑色,0是白色。如果遇到了上面的非数据区,则绕开或跳过。
6.掩码图案
这样下来,我们的图就填好了,但是,也许那些点并不均衡,如果出现大面积的空白或黑块,会告诉我们扫描识别的困难。所以,我们还要做Masking操作,QR的Spec中说了,QR有8个Mask你可以使用。选择一个合适的Mask也是有算法的。
下面是Mask后的一些样子,我们可以看到被某些Mask XOR了的数据变得比较零散了。
大功告成!