我的二维码为什么扫不出来?
几乎所有失败的扫描都归结为八种原因之一。下面说怎么判断是哪一种。
八种原因
| 原因 | 现象 | 解决办法 |
|---|---|---|
| 尺寸太小 | 相机始终无法锁定 | 印刷最小 2 厘米,长网址用 3 厘米以上 |
| 对比度不足 | 部分识别后丢失 | 深色码配浅色底,不要灰配白 |
| 反光 | 只在某个角度能扫 | 倾斜纸面,或移动光源 |
| 折痕或破损 | 只在折痕处失败 | 压平,或重新打印 |
| 屏幕摩尔纹 | 相机画面出现干涉条纹 | 改为截图后解码图片 |
| 模糊或抖动 | 对焦来回搜索 | 点按对焦,持稳,手找支撑 |
| 颜色反相 | 完全无法识别 | 用深色配浅色;有些解码器支持反相,很多不支持 |
| 定位图案被裁 | 完全无法检测 | 三个角上的方块必须完整 |
三个角上的方块最关键
二维码在三个角上各有一个大方块标记,解码器靠它们找到二维码并判断它的朝向。如果设计把其中一个裁掉了、用 logo 盖住了其中一个,或者把码贴到曲面上导致某个标记变形,任何解码器都读不出来——纠错帮不上忙,因为码根本定位不到。
设计师会在二维码中心加 logo,这通常没问题,因为中心属于数据区,受纠错保护。盖住角上的定位标记就不行,而这在印刷物料里是很常见的错误。
如果它本来就在屏幕上,别去拍它
截图,然后直接解码这张图片。拍摄显示器会引入摩尔纹、透视畸变和亮度不均,而这些因素破坏的恰好是解码器最需要的那些边缘。原始像素在各方面都严格更好。
当手机相机怎么都对不上焦时,这也是最快的解法:截图,然后用基于图片的读取器。
常见问题
印刷的二维码最小可以多小?
近距离扫短网址大约 2 厘米。内容越长需要的模块越多,所以物理尺寸必须放大才能让每个模块印得出来——常见链接用 3 到 4 厘米。
破损的码还能用吗?
可以,上限是纠错等级——通常码面 7% 到 30% 可以丢失。角上的定位标记是例外:通常无法恢复。
同一个码为什么在有的手机上能用,有的不行?
相机质量、自动对焦行为和解码器版本。较旧或较便宜的相机对付小尺寸、反光或低对比度的码很吃力。