二维码能做多小,取决于它会被在多远处扫描。凡是拿在手里的东西,比如名片,实际下限是 2 x 2 cm,也就是 0.8 x 0.8 英寸。可用的经验法则是:扫描距离除以十。
技术下限要低得多。ISO 18004 标准允许 Version 1 的码做到 1 x 1 cm 左右,而在受控条件下,精密扫描设备确实读得出来。但这两点都不等于昏暗房间里的一台手机摄像头,这正是实际下限远高于技术下限的原因。
还有第二个变量,多数尺寸指南都跳过了:你编码进去多少数据。两个印成完全相同尺寸的码,表现可能天差地别,而这个差别通常就决定了一个小码到底能不能用。下面依次讲:按放置位置划分的最小尺寸、Micro QR 是不是你真正想找的那个更小答案、密度问题背后的算术、码从纸面挪到屏幕上会有什么变化,以及哪些因素会让一个尺寸正确的码照样失效。
二维码该做多大?十比一法则
二维码该做多大,遵循 10 比 1 的比例。码的宽度大约要是扫描距离的十分之一。10 米外读取的广告牌,需要一个边长约 1 米的码。拿在 15 cm 处的名片,大约需要 1.5 cm,而 2 cm 能留出余量。
这点余量比听起来更重要。10 比 1 法则默认光线良好、印刷干净、手机也还算新。现实条件很少同时满足这三条。有人正在昏暗的会场里、以一定角度、用一台用了三年的手机扫你的名片。从 1.5 cm 往上取到 2 cm,在版面上几乎不花什么代价,却把这些变量全都买了回来。
可用的经验法则:扫描距离除以十
量一下码会在多远处被读取,除以十,把结果当作下限。然后向上取整。无论你印的是名片还是横幅,这个比例都成立。
如果名片版面允许,2.5 x 2.5 cm 扫起来还会更稳。

按放置位置划分的二维码最小尺寸
实际可用的最小二维码尺寸,完全取决于这个码最终放在哪里。同一个比例,套用到码常见的几种落点上。每一行的数字,都由扫描距离决定。
- 名片,在 10 至 15 cm 处扫描:最小 2 x 2 cm
- 传单或宣传册,在 30 cm 处扫描:3 x 3 cm
- 桌卡或菜单,在 50 cm 处扫描:5 x 5 cm
- 海报,在 1 至 2 m 处扫描:10 至 20 cm
- 会议横幅,在 2 m 或更远处扫描:20 cm 起
上面每个数字都是下限,不是目标值。只要版面允许,就往上取。比需要大 30% 的码,只让你在页面上多花一点空间。小了 10% 的码,让你丢掉这次扫描,而且你永远不会知道它发生过。

那 Micro QR 码呢?
确实存在一种更小的标准。Micro QR 码定义在同一份 ISO 18004 规范里,共有四个版本,M1 到 M4,从 11 x 11 模块到 17 x 17 模块。标准的 Version 1 二维码是 21 x 21,所以最小的 Micro QR 大约只有它一半的网格。
它靠的是几乎什么都不装。M1 只能存 5 位数字,而且仅有错误检测,完全没有纠错。最大的 M4 上限约为 35 个数字字符或 15 字节,装不下任何有实际用途长度的 URL。它们的静区也只需要 2 个模块,而不是 4 个,剩下的尺寸节省就来自这里。
实际问题在于支持度。Micro QR 常见于电子制造业和确实没有空间的元器件上,由专用工业扫描设备读取。手机原生相机对它的识别充其量只能算时灵时不灵。没人扫得出来的码不是小码,那是装饰。
两个老实的答案
现存最小的二维码是 Micro QR M1,11 x 11 模块。而你真正该印出来给人扫的最小二维码,仍然是 2 x 2 cm 的标准码。这是两个不同的问题,排名片版面时只有一个说了算。

名片上的二维码尺寸
标准名片是 9 x 5 cm。2 cm 的码只占宽度的五分之一稍多,比多数设计师动手画之前预想的要小。它是一个小方块,不会喧宾夺主,还给人在决定扫码之前会先看的那些信息留下了充足空间。
把三个候选尺寸按真实相对比例并排放在一起看,通常就足以了结争论。1.5 cm 在排版软件里放大 400% 时看着挺好,到了实际场合就让人失望。2.5 cm 在屏幕上显得大,拿在手里却刚刚好。

编码的数据量会改变你需要的尺寸
这是多数尺寸指南跳过的部分,也是真正决定你的名片能不能用的部分。
二维码是一张由小方块组成的网格,这些小方块叫模块。编码的数据越多,码需要的模块就越多。Version 1 的码是 21 x 21 模块,Version 40 的码是 177 x 177。在物理尺寸固定的情况下,模块越多,每个模块的实际尺寸就越小,密度超过某个临界点,手机摄像头就分辨不出来了。
这些数字值得看一看。一张包含姓名、职位、公司、两个电话号码、一个邮箱和一个通信地址的完整 vCard,长度约 300 个字符。在纠错等级 M 下,也就是几乎所有生成器的默认值,那是一个 Version 13 的码,69 x 69 模块。印成 2 cm,每个模块宽 0.29 mm。而指向电子名片的短链接是 48 个字符,同样在等级 M 下是 Version 4 的码,33 x 33 模块,在同样的 2 cm 下每个模块 0.61 mm。在完全相同的物理尺寸下,后一个码的模块宽度是前者的两倍多。
有个经验值:模块小于约 0.4 mm 时,在普通光线下就开始让手机摄像头吃力。那个 vCard 码要印到大约 2.8 cm 才越过这条线。短链接的码在 2 cm 时就轻松达标,很多时候 1.5 cm 也照样能用。
实际含义
如果你把联系方式直接印进码里,你需要的码就得比最小尺寸更大。如果你编码的是指向电子名片的短链接,你就把最小尺寸拿回来了。
第二点值得多想一想。直接编码进印刷码里的 vCard 是被冻住的。换了工作、换了号码,你发出去的每一张名片就都错了。而电子名片链接始终正确,因为变的是目标页面,不是那个码。

纠错等级会吃掉你的尺寸预算
内容长度只是一半原因。每个二维码都带有冗余,好让它在局部损坏或被遮挡时仍能读出,而冗余多少由你选。等级 L 可恢复约 7% 的码,M 约 15%,Q 约 25%,H 约 30%。冗余同样是数据,所以提高等级会把码推到更高的版本,在相同物理尺寸下让每个模块都变小。
还是那个 48 字符的链接最能说明问题。在等级 L 下它是 Version 3 的码,29 x 29 模块,2 cm 时每模块 0.69 mm。在 M 下是 Version 4,0.61 mm。在 Q 下是 Version 5,0.54 mm。到了 H,它变成 Version 6 的码,41 x 41 模块,每个模块降到 0.49 mm。同一个链接,同样的 2 cm 方块,你却把大部分扫描余量花在了买损伤容忍度上,而一张躺在钱包里的名片根本不需要它。
该选哪个等级
印刷场景下,等级 M 是合理的默认值,多数生成器给你的也是它。只有当码在日常使用中会被磨损、折叠或部分遮住时,才去用 Q 或 H,而且用的时候要把码放大。
留出静区
静区就是码周围的空白边距。扫描设备靠它找到码的边界,没有静区,它们往往根本检测不到这个码。
ISO 18004 要求四周各留 4 个模块的空白。实际操作中,在名片上给码周围留出约 0.25 英寸的空白边距。不要有文字、logo、边框,也不要有背景图案侵入这块区域。
这是尺寸正确的码扫不出来的头号原因。设计师把码当成一张图片,紧贴着边缘裁切。

印刷分辨率
页面上的尺寸和文件里的分辨率不是一回事。以屏幕分辨率导出的 2 cm 的码印出来会发虚,而模块之间发虚的边缘,恰恰是扫描设备读不出来的东西。
印刷请以 300 DPI 或更高导出。在 300 DPI 下,2 cm 的码大约是 236 像素见方。更好的做法是用 SVG 或 EPS 这类矢量格式,任何尺寸下都保持锐利,直接消灭这个问题。送印之前,先问问印厂偏好哪种格式。
在屏幕上,按像素定尺寸
屏幕上不存在 DPI 的问题。要紧的是这个码实际渲染出多少像素,以及后续环节会不会把它缩小。
距离仍然由 10 比 1 法则决定。邮箱签名里的码,阅读距离和名片差不多,大约是 15 至 20 cm,因此需要同样的比例尺寸。别靠猜,从模块反推:短链接是一个 33 x 33 模块的码,每个模块给 4 个像素,下限就落在 130 像素见方左右。如果后续环节可能对它做缩放,每个模块给 5 到 6 个像素。幻灯片上的码是从房间后排看的,所以要按那个距离定尺寸,而不是按幻灯片本身。
有两件事专门坑屏幕上的码。把一张大图用 HTML 缩小显示,等于把重采样交给浏览器,它会像低 DPI 一样让模块边缘发虚,所以要按显示尺寸导出。另外,会压缩或缩放图片的邮件客户端可能悄悄把码缩到可读下限以下,所以要在收件人真正使用的客户端里测试,而不是在你写邮件用的那个里。
如果你还没有码,可以先为名片生成一个二维码并下载下来,再去排名片的版面。
对比度与颜色
彩色二维码可以用,但只在一定范围内。
扫描设备寻找的是浅色背景上的深色模块。请保持这个极性。反相的码,也就是深色底上的浅色模块,即使对比度在技术上很高,在很多扫描设备上也会失败。
在此之上,前景与背景的差距越大,码的容错就越好。黑底白配是最保险的选择,用它一点都不丢人。如果要用品牌色,请挑一个真正深的前景配一个真正浅的背景,并在批量付印前先做测试。
亮面卡纸带来一个与颜色无关的变量。在会场灯光下,亮面会在码上反出眩光。哑面工艺扫起来更可靠。

付印之前先测试
先印一张名片。不是办公用纸上的打样,而是用实际纸张印出的实际名片。
然后拿你能找到的最旧的手机去扫,在光线不佳的环境里,手臂伸直的距离,还稍微倾斜一点角度。如果这种条件下都能读出来,它在哪儿都能读出来。如果只有新手机在明亮光线下才读得出来,那就把尺寸加大。
一张名片,对上整批印量
这个测试的成本是一张名片。跳过它的成本是你订的每一张名片,外加那些因为没人扫得出你而从未发生的对话。
常见错误
几乎每一个失败的名片二维码,都逃不出下面这几条。
- 为了塞进拥挤的版面,把尺寸做到 2 cm 以下
- 裁切侵占了静区
- 编码了完整 vCard,却仍然用最小尺寸
- 以屏幕分辨率导出,而不是 300 DPI 或矢量格式
- 把颜色反相,或者选了两个毫无真实对比的中间色调
- 把码放在折线上,或者离裁切边太近



