二维码有破损,咋还可以扫描出网址

要回答这个问题,需要解释下二维码的实现原理。相比于“一维码”,例如我们常见的条形码,二维码具有“定位点”和“容错机制”两个新的特性,而且可以存储例如文本等更多内容。
一个常见的二维码如下图所示:
二维码有破损,咋还可以扫描出网址

示例二维码首先,你可以发现在二维码的左上角、右上角、左下角这三块区域分别有很大一个矩形块,这就是我们上面说的“定位点”。根据几何知识,我们知道,三个点已经可以确认一个二维图形的区域,这就实现了二维码的“定位点”机制。
其次,再说下“容错机制”。在我们常用的“草料二维码”工具上,你可以发现有一个“容错”的选项,其实这个选项就是在设置二维码的“容错率”。你可以对比下容错率不同时二维码的矩形块密度。
二维码有破损,咋还可以扫描出网址

容错率在二维码的生成过程中,伴随着数据编码和纠错编码。纠错编码就是来确定容错率的,纠错编码越多,容错率越高。
在这最重要的两个机制完成后,下面就是构造二维码矩阵了:
二维码有破损,咋还可以扫描出网址

普通二维码的基本结构也就如题主所问,如果你的二维码有破损,那么这个破损的区域应该不会影响定位,且数据编码依旧存在,而且可能丢失的纠错编码不影响正常的数据解码。
这样,即使你的二维码有破损,那么这个二维码依旧是可以解码的。

■网友
该问题和一个问题比较像:通信传输过程中是如何解决误码的。
【二维码有破损,咋还可以扫描出网址】 因为二维码是带有校验码的。如果破损,遮挡的部分正好可以被纠错过来的话,就仍然可以被成功识别。
下图是ZBar生成二维码的代码,其中Hightlight的QR_ECLEVEL_L指的就是纠错等级。
二维码有破损,咋还可以扫描出网址

纠错码有4个等级,L,M,Q,H,最低占比7%,最高占比30%
L(QR_ECLEVEL_L,7%),
M(QR_ECLEVEL_M,15%),
Q(QR_ECLEVEL_Q,25%),
H(QR_ECLEVEL_H,30%)。
最高的化纠错效果最好,但数据量也会更大。另外,草料二维码的纠错等级就是最高(非广告)。

■网友
通俗点讲,就像你手机有时候磕坏了一样,并不影响你使用啊
■网友
二维码相比一维码来说,破损一点还是可以扫描出来的,这和解码方式有关系。


    推荐阅读