二维码一共有40个版本,Version 1
是21*21
的矩阵,Version 2
是25*25
的矩阵,每增加一个version
,长宽就增加 4
,公式是:
(V - 1) * 4 + 21;
最高版本是40,所以是177 x 177的正方形。 每个1x1都是一个小方块,黑色表示 1,白色表示 0。
二维码有很多部分组成,基本结构如下:
功能区域(Function Patterns)
Quiet Zone
空白区域
Position Detection Patterns
定位图案,用于标记二维码的矩形大小。这三个定位图案有白边叫Separators for Postion Detection Patterns。之所以三个而不是四个意思就是三个就可以标识一个矩形了。它是一个固定大小的回字
Separators for Position Detection Patterns
位置探测图案分隔符。将位置探测区域围起来的固定宽度 1 的白色“围栏”
Timing Patterns
定位条。是两根黑白相间的长条,每一根的头尾都是黑色。主要用来协助机器扫描的
Alignment Patterns
alignment-patterns不同的
version
拥有不同数量的校正图形,位置也是不一样只有
Version 2
以上(包括Version2
)的二维码需要这个
编码区(Encoding Region)
Format Information
格式信息。所有version的二维码都有,存放二维码的容错级别+数据掩码+二者的纠错码
Version Information
版本信息,version >=7
才会绘制这个区域。需要预留两块3 x 6
的区域存放一些版本信息。
Data and Error Correction Codewords
存储真正的数据,同时由于纠错码的存在,使得即使二维码污损了一部分也可以读取. 整个灰色区域都用来存放此部分数据。
二维码支持 4 种级别的纠错:
纠错级别 | 恢复能力 |
---|---|
L | Recovers 7% of data |
M | Recovers 15% of data |
Q | Recovers 25% of data |
H | Recovers 30% of data |
纠错级别越高,恢复能力越强,代价是能存储的有效数据越少,因为纠错码的占比会越高。
参考文章:
https://coolshell.cn/articles/10590.html
https://hellogithub2014.github.io/2019/08/05/qr-code-theory/
https://blog.csdn.net/u012611878/article/details/53167009
网友评论