米格速压
二维码 排查 教程

生成的二维码扫不出?这 6 个原因 90% 的人都踩过

把二维码贴到海报上发现客户扫不出来。原因不止"二维码太小",还有容错等级、对比度、反光膜印刷、链接长度太长、嵌入 logo 遮挡了码点 —— 6 个常见原因逐个排查。

米格速压
2026-05-147 分钟
分享

给一个市集活动做海报,设计稿审完印了 500 张,贴到各个商铺门口。 第二天活动现场我看到一个细节:好几个客人对着海报扫码,扫了半天扫不出, 最后弯腰把手机贴到二维码上才识别成功。

回去复盘:二维码本身没错,内容是对的;但海报上印的尺寸太小(3cm×3cm), 贴在墙上 1.5 米高,远看一片黑。整批海报已经印完,改不了。 这种错误花了 500 张海报的钱才让我学到

这篇把我后来总结的二维码扫不出的 6 大原因,以及每种问题对应的解决方案给你。 做海报 / 名片 / 物料前看一遍,能避免类似的低级错误。

原因 1:尺寸太小(我自己踩的坑)

这是最常见的。视觉设计师做海报时,二维码当作一个小角落元素,经常被压缩到 2-3cm。 但贴海报后,观看者距离 1-2 米,这个尺寸的二维码扫码器很难快速对焦。

口径:二维码物理尺寸至少是观看距离的 1/10。具体场景:

  • 桌面立牌 / 餐厅菜单(距离 30-50cm):二维码 3-5cm
  • 名片(距离 20-30cm):二维码 2cm
  • 商铺海报(距离 1-1.5m):二维码 10-15cm
  • 地铁灯箱 / 大型海报(距离 2-3m):二维码 20-30cm
  • 电梯里的横幅(距离 0.5-1m):二维码 8-10cm

规则就是:做大,不要做小。二维码占空间的劣势是视觉小事,扫不出来才是大事。

原因 2:容错等级选低了 + 加了 logo

二维码有 4 个容错等级:

  • L:7% 容错。允许 7% 面积被遮挡仍可识别。不带 logo 才选这级
  • M:15% 容错。普通带 logo 默认级
  • Q:25% 容错。logo 较大用这级
  • H:30% 容错。logo 占满中央或带文字 / 装饰的二维码用这级

如果生成时选了 L 等级,加 logo 直接遮挡 8-10% 面积,信息完全丢失,扫不出。 有 logo 的二维码统一用 Q 或 H 等级

原因 3:对比度不够

生成二维码默认黑色前景 + 白色背景。如果设计师把它改成:

  • 浅灰 + 白底:对比度 40% 以下,弱光下扫不出
  • 深蓝 + 浅蓝:对比度低,微信扫码可能也扫不到
  • 深色背景反白(亮二维码 + 黑底):微信扫码理论支持,实际识别率比正色低 30%
  • 渐变颜色二维码:某些区域对比度低,识别率随颜色变化大幅波动

规则:前景颜色和背景颜色明度差 > 60%。最稳的是黑色 + 白色(差 100%)。 想做品牌色二维码,前景用深色品牌色,背景留白。

原因 4:周围没留"静默区"

二维码周围必须留出至少 4 个码点宽度的纯色空白,这叫"静默区"。 静默区的存在让扫码器能准确识别二维码的边界。

多数生成工具默认带静默区,但设计师在 PS 里把二维码裁切得很紧, 让二维码贴到其他元素边缘,静默区被剪掉了,扫码器把周围的图案当成二维码的一部分,识别失败。

规则:二维码周围一圈白色 / 单色留白,宽度不小于二维码 8% 的尺寸(大约 1cm)。

原因 5:链接太长导致二维码太密

二维码记录的信息越多,格子越密集。一个普通短 URL(40 字符)生成的二维码大约 25×25 格, 一个超长 URL(200 字符)能生成 50×50 格。

格子密度大,扫码器需要更高分辨率才能识别。在小尺寸印刷下, 密集格子的二维码扫描失败率比稀疏的高 3-5 倍

解决:

  • 原 URL 用短链接服务(新浪短链 / 腾讯短链 / 阿里云短链)缩短到 30 字符以内
  • 如果你网站可控,设置短跳转路径(/r/abc 这种,做 302 重定向)
  • 无意义参数(?utm_xxx=yyy)单独后台埋点,不放二维码 URL 里

原因 6:印刷质量差

电子屏幕显示的二维码扫起来很顺,但印到纸上经常扫不出。常见原因:

  • 打印分辨率太低(< 300 DPI):格子边界模糊
  • 用了亮面铜版纸:反光让扫码器看不清,改成哑面纸或普通纸
  • 家用喷墨打印机 + 长时间存放:墨水扩散,格子糊了
  • 透明贴纸 + 复杂背景:贴在花纹背景上,扫码器分不清码和背景
  • 白色二维码贴在金属表面:反光形成"噪点"

生产前的 5 步验证清单

做完二维码,送印前必做的 5 步:

  1. 用微信扫一遍(在屏幕上扫):扫不出?重新生成
  2. 原生相机扫一遍:扫不出?容错等级 / 对比度有问题
  3. 打印 1 张样品:对着打印的样品再扫一次,扫不出?印刷质量问题
  4. 距离测试:模拟实际场景的距离扫,扫不出?二维码尺寸太小
  5. 找 3 个不同手机扫(iPhone / Android / 老款手机):都扫得出才算 OK

5 步全过,印刷后扫不出的概率不到 1%。

总结

二维码扫不出 99% 是设计 / 制作环节的问题,不是工具的锅。 尺寸、容错、对比度、静默区、链接长度、印刷质量 —— 这 6 个变量任何一个掉链子,扫码失败率就会显著上升。

站里的二维码生成 / 识别工具 支持自定义容错等级 + 添加 logo + 多种颜色配置 + 输出高清 PNG (用于印刷)。 生成完用同一个工具的"识别"模式反向扫描验证一遍,这是最简单的二维码自测方式。

常见疑问

二维码最小要做多大才能稳定扫描?
看观看距离。一般规则:二维码物理尺寸 = 观看距离 / 10。比如客户离海报 1 米远扫,二维码至少 10cm × 10cm;客户 30cm 扫,二维码 3cm 即可。低于这个比例,微信扫码 / 支付宝扫码会出现"无法识别"或者要扫好几次才行。
为什么我的二维码加了 logo 就扫不出?
二维码有"容错"设计:即使部分图案被遮挡,扫码器也能恢复原内容。但容错有上限。容错等级分 L (7%)、M (15%)、Q (25%)、H (30%)。logo 占据二维码面积超过容错上限,信息就丢失了。解决:① 生成时选 H 等级容错;② logo 不超过二维码面积的 25%(对应 H 等级的最大遮挡);③ logo 放正中央(那里冗余信息最多)。
黑白二维码和彩色二维码哪个识别率高?
黑白(黑前景 + 白背景)是标准,识别率最高 99%+。彩色二维码识别率取决于"对比度":深色前景 + 浅色背景才能扫(深蓝 + 白底 可以,浅蓝 + 白底 就糊)。前景背景同色调或对比度低于 40% 的,扫码器很可能扫不出。如果非要彩色,前景用深色(深蓝 / 深红 / 黑),背景用白色或浅色。
微信能扫二维码,但相机扫不到?
不同扫码器的算法差异。微信 / 支付宝的扫码引擎是顶级的,能容忍倾斜、低对比度、部分遮挡;手机原生相机的扫码引擎相对较弱。生产环境要适配多种扫码器,推荐用微信测试通过的二维码,然后用原生相机再测一遍 —— 两个都能扫,就基本不会有问题。
生成二维码的链接太长,二维码很密很难扫怎么办?
二维码的"信息密度"和"链接长度"成正比。长链接产生的二维码格子很小很密,扫码器需要更高分辨率才能识别。解决方法:① 用短链接服务(新浪短链 / 第三方短链)把长 URL 缩成短 URL,再生成二维码;② 如果用途允许,把跳转地址改成跳转页(<code>/r/abc123</code>),代码层做 302 重定向。
打印出来的二维码扫不出咋办?
常见原因:① 打印分辨率太低(低于 300 DPI 二维码格子会模糊);② 打印用了亮面纸,反光导致扫码器看不清(改用哑面纸 / 普通铜版纸);③ 喷墨打印机墨水扩散导致格子边界模糊(用激光打印或者印刷);④ 二维码周围没留白(标准要求二维码四周至少留出 4 个码点宽度的"静默区")。
二维码扫一次只能扫一次吗?可以重复使用吗?
看二维码内容。① 普通"打开 URL"的二维码,无限次扫描都行(扫的人浏览同一个网页);② 微信付款码 / 收款码每次扫码都是独立交易,可重复扫但有 5 分钟有效期;③ 支付宝"个人收款码"是动态的,生成的二维码 60 秒过期。如果你做的是营销推广用的静态码,只要原内容不变,贴 10 年都能扫。

看完即用

二维码生成识别

生成自定义二维码 / 识别图中二维码内容

立即免费使用
作者
米格速压

米格速压编辑组,专注于办公文件处理场景的教程编写。每周二、五更新。