你有一个二维码,却怎么都读不出来。相机悬在上面、识别器转圈,什么都没有。很烦——但一个解不出的二维码,几乎总是栽在少数几个具体原因上,而且大多数你都能在一分钟内修好。下面教你判断自己撞上了哪一个。
1. 码在画面里太小了

这是目前为止最常见的原因。二维码需要足够的像素,解码器才认得出它的图案。如果码只是大截图角落里的一个小方块,或者照片里远处的一个小点,细节就是不够读。
修: 裁近一点。解码前先把图裁到让二维码占据大部分画面。一个原本只占截图 5% 的码,裁到占 80% 后往往一下就读出来了。
2. 糊了或者没对上焦

手抖的照片带来的运动模糊,或者没对上焦,会把图案赖以生存的锐利边缘抹掉。解码器需要黑白之间干净利落的过渡。
修: 如果是照片,端稳重拍,点一下对焦到码上。如果是对一张本来就糊的东西的截图,能做的就少些——但裁到码再试一次仍然值得,因为有时整张糊图读不出,一小块清晰区域反而能解。
3. 对比度低或颜色古怪
二维码靠深色模块和浅色背景之间清晰的差别来工作。褪色的打印、背景很花的码,或者"深色"其实是个浅色的美化码,都可能低于识别阈值。
修: 有清晰的浅底深码版本就优先用。不过反色码有好消息:正经的识别器会同时尝试正常和反色图案,所以浅色码配深底(黑底白码)通常照样能读。
4. 反光、倒影或光线不均
拍光滑表面或屏幕上的码,常常在图案上正中横一道明亮的高光,把一部分抹掉。屏幕对屏幕拍还会引入摩尔纹干扰。
修: 换个角度消掉反光,追求均匀光线而不是一个亮斑。如果码在你自己的屏幕上,干脆别用相机——截个图,直接解这张图。
5. 码破损或被挡住了一部分
二维码有纠错能力,能扛住一些破损,但一道大划痕、一道横过打印码的折痕、一张贴纸,或一根手指盖住一个角,都可能把它推过可恢复的极限。尤其是角上那三个大的定位方块,必须完整。
修: 如果是实体的,把折痕压平或把表面擦干净。如果确实有一部分缺了,没有哪个识别器能把数据凭空补回来——你需要一份干净的码。
从图片里解,而不是靠抖动的相机
如果码本身已经是个文件——截图、存下的照片、导出的图——你根本不需要相机。直接从图片里读,能完全绕开对焦和反光的问题。
IMG.DIY 的二维码识别接收你给的图片,在你的浏览器里把它解出来,把文字显示给你——自动同时尝试正常和反色图案,并把大图缩小以便快速处理。全程在本地跑,什么都不上传。
几点诚实的限制,先把预期摆正:它一张图读一个码,所以一张图里有好几个时,裁到你要的那一个。而且它从图片读,不走实时摄像头——这是为了保持全程本地的刻意选择。非常小、很糊或高度美化的码,即便裁好了也可能顽固不出;真碰上这种时,解法几乎总是把码拍/截得更清晰、更近、对比度更高,而不是换个工具。
