去年十月我们店换秋冬菜单,把点单二维码印在牛皮纸桌贴上。设计稿很好看——深棕底配奶白码点,中间嵌了店铺 Logo。印刷厂打样出 88 张贴到每张桌上,我在第一个晚高峰拿三台手机试,两台完全没反应,一台举着找半天角度才勉强进去,进去的还是首页不是菜单页。那三天后台统计里扫码下单的顾客只有 4 个,桌贴渠道的转化率不到千分之二。返工重印之后,我才把"扫得出"这件事拆开理解。
一、扫不出通常是这三件事之一
二维码是一组黑白模块加三个定位图案。相机要先找到定位图案,再按模块采样,最后靠纠错位补回读不出来的部分。任何一环失败,表现都同样是"对着它没反应":
- 对比度不够:前景与背景亮度差太小。深底浅码属于反色,多数手机相机的识别率明显低于"深码浅底";浅灰配白也常见于设计稿,人眼看着精致,机器看着一片糊。
- 模块太小:打印尺寸缩小,或者塞进去的内容太长导致模块数暴涨,单个模块在纸上不到 0.5mm,相机采不准。同一张图缩到名片尺寸最容易踩这条。
- 中心被遮:Logo 或文字压掉了关键模块,超出纠错能力就彻底读不出。三个定位图案被压到更是直接失败。
二、容错等级决定 Logo 能吃掉多少面积
二维码有 L、M、Q、H 四级冗余,可容忍的损坏比例是明确的:
| 等级 | 可纠错比例 | 适合的场景 |
|---|---|---|
| L | 约 7% | 屏幕展示、完全无遮挡 |
| M | 约 15% | 通用 |
| Q | 约 25% | 可能磨损、覆膜、轻微遮挡 |
| H | 约 30% | 中心要嵌 Logo 就用这级 |
所以"加 Logo 会不会影响扫描"这个问题有确定答案:遮挡压在 30% 以内并留够冗余就没事,默认容错硬塞就一定出事。我们的第一版是默认容错加一个占掉近四分之一面积的 Logo,两个条件同时踩线。
三、我重做的顺序
- 先把内容缩到最短。原来把整段菜单文案和一条带一堆参数的长链接一起编码,模块数直接翻倍。换成短链之后码的密度小了一档,同样的桌贴尺寸下模块明显变大——这是最划算的一步,而且不用改设计。
- 在二维码生成器里把容错定到 H,前景用接近黑的深灰,背景保持纯白,四周的空白边不压任何文案,Logo 尺寸往下压到码面五分之一左右。
- 想要品牌感就只动前景:从深到浅的线性渐变在同一方向上是安全的,我们最后用的是深灰到墨绿;背景换成红底、金底风险最高,别再试。
- 自测不要省。生成后我把图上传到二维码解码,确认解析出的内容和类型正是我要的那条链接,再拿三台不同手机(两台安卓、一台 iOS)在 30cm 和 80cm 两个距离各扫一遍。
- 印刷一律导出 SVG 矢量,让印刷厂按 8×8cm 出成品,而不是把设计师的 PNG 拉大。桌贴最小做到 3×3cm,再小我就不建议放码了。
四、内容长度决定码有多密,也就决定最小打印尺寸
同样大小的两张码,装的字数越多、模块就越密,单个模块在纸面上就越小。我后来是把内容长度当成第一个约束来选的:
| 编码内容 | 大致字符数 | H 级下模块数(约) | 建议最小打印边长 |
|---|---|---|---|
| 短链跳转 | 30 上下 | 33×33 | 3cm |
| 带参数的活动长链接 | 60–80 | 45×45 | 4.5cm |
| 一整段菜单文案 | 150 以上 | 65×65 | 7cm |
| 名片信息(姓名电话邮箱地址) | 200 上下 | 73×73 | 8cm |
背后的判断标准只有一条:单个模块在成品纸上不要低于 0.5mm,给相机留出对焦余量。桌贴按 3×3cm 放短链是够的;可如果非要塞整段菜单文案,就得做到 7cm 以上,而 7cm 的码贴在桌上已经大到盖住菜名。这种时候正确的解法不是放大纸面,而是换内容——文案挪到落地页,码只负责指路。
还有一条维护经验:静态码印出去就改不了,所以一切会变的都放在落地页那一侧。我们最后把桌贴指向一个不带活动参数的固定地址,换季只改页面,那 88 张贴纸至今没重印过。
五、容易忽略的细节
- 空白边不是装饰:那一圈白是给相机找边界用的,为了"紧凑"裁掉之后定位失败率明显上升,要把它当作码的一部分。
- 静态码没有有效期,也不能改:内容烧死在图案里。落地页改版、活动结束、短链服务停运,纸上的码就废了。大批量印刷前先确认这条链接由谁长期维护。
- 材质会吞掉对比度:亮膜反光、金属拉丝牌、深色木板都会让识别失败,跟设计稿无关。我们改成哑膜之后同样配色的失败率降下来很多。
- 一物一码要算人工成本:每个产品配不同码,就得逐个生成和核对,几十个还行,上百个必须先想好批量的生成与验收流程。
- 别把敏感信息直接编码:后台地址、内部路径、账号写进去,任何人扫一次就拿到了。分享 WiFi 也只给访客网络,主网口令不要印在门口。
六、常见疑问
Q:加了 Logo 到底会不会影响扫描?
取决于遮挡面积和容错等级。H 级下 Logo 压在码面约 20% 以内、不碰三个定位图案,实测没有影响;L 级塞任何 Logo 都会大幅提高失败率。
Q:印刷给 SVG 还是 PNG?
印刷、易拉宝、包装一律矢量,放大不糊;网页和聊天配图用 PNG 足够。如果非要给 PNG,原始像素至少要做到成品尺寸的三倍以上。
Q:为什么同事的手机能扫,我的不行?
各家相机的对焦和识别实现差别很大,低对比度下尤其明显。别用一台手机的成功去验证整批物料,至少覆盖两三个型号、两种距离。
Q:已经印出去的码,能查出它指向哪里吗?
图片清晰的话可以,上传后能识别出链接、文本、WiFi 配置等类型。核对物料印错没有,这一步比拆下来重印便宜。
Q:彩色码是不是比黑白的更容易失败?
问题不在"彩色",在亮度差。前景够深、背景够浅,彩色照样能扫;两色亮度接近再高级的配色也会失败。
那批桌贴重印花了两百多块,比"三天只有四个人扫码成功"便宜得多。我现在的验收标准简化成三条:容错定到 H、深码浅底、印刷走矢量。物料上的码本质是一个交互入口而不是装饰,按入口的标准验收,就不会再翻这种车。