跳到主要内容

指南

怎样给二维码加 logo 又不影响扫描

Logo 让二维码更容易被认出来,但它同时拿走了矩阵的一部分。可靠的设计取决于你手上还剩多少纠错余量、对比度够不够强,以及有没有测试最终的物理载体。

Logo 为什么能盖在二维码上

给二维码加 logo,本质上就是盖住一部分数据。它照样能用,而搞懂为什么能用,正是"加了品牌还能扫的码"和"看着不错却在客户手机上失败的码"之间的分水岭。

二维码本身带有冗余数据。标准内建了纠错机制,让码在一部分被弄脏、撕破、压皱或遮挡时仍然可读——这个格式是为车间地面设计的,不是为设计作品集设计的。Logo 不过是有意地花掉了这份余量的一部分。

所以问题从来不是"我能不能加 logo",而是"我花掉了余量的多少,花在了什么上"。

四个纠错等级,以及它们各自的代价

每张二维码都在四个纠错等级之一上生成,分别能恢复大约 7%、15%、25% 和 30% 的码面。

直觉上的做法是直接选最高的,然后不用再操心。没这么简单,因为冗余得存在某个地方:等级越高数据越多,数据越多模块越多,而同样的印刷尺寸下模块越多,每个模块的物理尺寸就越小。过了某个点,你就把一张耐用的码换成了一张摄像头根本分辨不出来的密集图形。

对大多数加了品牌的码来说,实用的答案是中间等级配一个不张扬的 logo,并且测试过。只有当这张码要待在真正恶劣的环境里时才去够最高等级——弯曲的瓶身、织物表面、运输中会被磨花的包装——同时接受它所需要的更大印刷尺寸。

Logo 实际能盖住多少

要待在你所选等级的深处,而不是它的边缘上。如果这个等级能恢复约 30%,那么一个占到接近 30% 的 logo 就给现实世界什么都没留下——而这份余量的全部意义恰恰就是应付现实世界。

失效也不是渐进的,这正是坑人的地方。码不会随着 logo 变大而慢慢变难读;它先是稳定可读,然后在有些手机上能扫有些不能,然后就彻底不行了。中间那个阶段最危险,因为它能通过大多数人唯一会做的那次测试。

起步时做得比你想要的小一点,测试,测试干净了再放大。

Logo 绝对不能放的位置

图形里有些部分属于结构而不是数据,纠错保护不了它们。

三个角上的大方块是位置探测图形——扫描设备靠它找到码并判断方向。较大的码上第四个角附近那个小方块是校正图形,用来修正斜着拍摄造成的畸变。位置探测图形之间那些点线是定位图形,用来确定模块网格。

盖住其中任何一个,再多纠错都救不了,因为扫描设备根本走不到用得上纠错的那一步。Logo 保持居中,远离四角,并且绝不要为了塞进版面而裁切二维码。

哪些品牌色可行,哪些不行

颜色是品牌规范和可扫描性吵得最多的地方,而真正要紧的规则只有几条。

扫描设备读的是模块和背景之间的对比,所以对比必须够强——而且要在常规方向上,浅底深码。反色的码,也就是深底浅码,很多扫描设备能读但不是全部,这就让它在你收不回来的印刷品上成了一场赌博。

中间调的品牌色是惯常的牺牲品。在背光屏幕上看着笃定很深的颜色,印到未涂布纸上可能离背景近得多。模块上的渐变和它们背后的照片底图会以更难预测的方式造成同样的问题。

一个不需要任何工具的实用检查:把印刷源文件转成灰度看一眼。如果图形仍然明显是浅底深码,对比度就是真的。如果糊成一团,扫描也会糊。

保住静区

标准要求四周各留出四个模块宽的空白边。它不是留白,也不是设计师的建议——扫描设备正是靠它确定码在哪里结束。

它也是二维码中最经常被毁掉的部分,恰恰因为它看起来像一块版面可以拿去用的空地。文字紧贴边缘、码周围画一圈边框、背景图从底下穿过、码被裁得与版面边缘齐平——这些都会把它去掉。

地方不够就把码做小,把边留住。静区完整的小码能扫;没有静区的大码可能不行。

按用途导出正确的文件

凡是要印刷的都用矢量格式——SVG 或 PDF。矢量源文件在任何尺寸下都能把模块边缘保持得绝对锐利,而摄像头需要的正是锐利的边缘。

屏幕、邮件以及需要位图的文档用 PNG,而且要导得比你以为需要的更大。从小尺寸 PNG *放大* 出来的二维码会产生柔软模糊的模块边界,而模糊的边界会被读成有歧义的数据。

绝不要从截图里取码,也不要让它在送到印厂的路上经过一次有损重压缩。高对比边缘周围的 JPEG 杂讯,正是最不该出现的那种噪声。

认真测一遍,只要五分钟

能在设计软件里扫出来的码,是在理想条件下测过的:完美对焦、完美光线、背光屏幕、一台设备。这些都不是它将要被使用的地方。

  • 按最终实际尺寸、在真实材料上打样——涂布纸和未涂布纸表现不一样。
  • 至少用一台 iPhone 和一台安卓扫,最好再加一台摄像头较弱的旧手机。
  • 在它将要待的真实光线下测试,包括人造光;户外的还要在强烈日照下测。
  • 按真人会站的距离扫,而不是贴到十厘米。
  • 稍微斜着试一下,人们实际拿手机就是这样的。
  • 如果它要贴在弯曲或柔软的东西上,就在弯曲状态下测,而不是摊平了测。

反复出现的那几种失败

几乎每一张在生产环节失败的品牌码,背后都是同样那几个原因:logo 在设计评审时变大了而没人重测;静区在最终版面里被裁掉了;一个在屏幕上读作深色的品牌色印成了中灰;码从小 PNG 放大而丢了边缘;或者只在设计师的手机上测过,而那台手机摄像头很好、还早就知道那个网址。

这些全都能靠打一张样、递给另一个人来抓出来。

关于作者

Andrii Petlovanyi

负责 Mosaqo 的网页端、iOS 与 Android 开发。

FAQ

常见问题

二维码上的 logo 能做多大?

要比纠错等级技术上允许的更小。各等级按设置能恢复码面的约 7% 到 30%,而 logo 花的正是这份余量——把它填满就等于给印刷瑕疵、污渍和差摄像头什么都没留。先用一个不张扬的 logo,在打样上测试,只有测试干净了才放大。

二维码里能用我的品牌色吗?

只要对比度扛得住,通常可以。保持浅底深码而不要反色,图形背后避免渐变和照片底图,并且警惕那些在屏幕上看着深、印出来浅得多的中间调品牌色。把源文件转成灰度是个快速检查:如果图形仍然清楚地是浅底深码,对比度就是真的。

为什么我的二维码在我手机上能扫,在别人手机上不行?

这是码正卡在可读边缘上的典型症状。你的手机摄像头好、光线有利,而且往往已经缓存了结果。临界的码在强传感器上能读,在弱的上就失败。把它当成故障而不是怪癖:缩小 logo、提高对比度、恢复静区,或者印得更大。

二维码该导成 PNG 还是 SVG?

凡是印刷的都用 SVG 或 PDF,因为矢量源文件在任何尺寸下都能保持模块边缘锐利。PNG 适合屏幕和文档,但要导得足够大——把小 PNG 放大会让模块边界变糊,而糊掉的边界会被读成有歧义的数据。绝不要用截图。

加 logo 需要提高纠错等级吗?

它需要的是足够的余量,这通常意味着不能用最低等级——但最高等级也并非自动就对,因为纠错越多模块越多,同样印刷尺寸下码就越密。中间等级配一个不张扬的 logo,并在打样上验证过,是可靠的默认做法;最高等级留给真正恶劣的表面。

下一步

准备好创建第一个二维码了吗?

创建二维码,并在印刷前完成测试

Mosaqo 首个版本完全免费,无需支付卡。

免费开始