可以将图像覆盖在 QRCode 上并对其进行扫描,因为存在一些冗余。
但是我如何计算我可以隐藏的模块的最大数量以及我仍然拥有哪些冗余?
我看到大多数人只是用 Photoshop 调整他们的代码并尝试使用他们的阅读器:我想动态生成 QRCode 并添加一些任意图像,所以这种手动调整对我来说不起作用。
根据维基百科,四个纠错级别可实现以下大致级别的纠错恢复:
Level L (Low) 7% of codewords can be restored.
Level M (Medium) 15% of codewords can be restored.
Level Q (Quartile) 25% of codewords can be restored.
Level H (High) 30% of codewords can be restored.
Run Code Online (Sandbox Code Playgroud)
要了解确切的数字,您需要参考 QR 码规范 (ISO 18004)。
比这稍微复杂一点。例如,EC 数字不适用于角落的取景器图案。虽然您可以稍微扭曲它们,但对于具体扭曲程度没有硬性限制。
同样,QR 码数据的某些区域未被 EC 覆盖,因为它们本身包含 EC 级别和版本信息。这些区域位于右上角和左下角代码周围。他们有不同的 EC 方案并有一些冗余,但很难准确解释你可以腐败多少。
最后,请记住,对于您的徽标覆盖的任何模块,徽标的明暗度与底层模块相匹配的可能性约为 50%(当然,取决于您的徽标)。所以它不会引入错误。因此,您的徽标破坏的代码字的确切数量取决于徽标和底层 QR 码模块!
最好的选择是使用 H 级纠错。然后创建一些失真度逐渐增大的测试二维码。使用 zxing 之类的库和调试器来检测样本由于 EC 限制而开始失败的点。然后回退到该大小的 75%。
这应该足以满足几乎所有实际情况。
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |