跳到主要内容
QRCodeMax.Vip

如何给二维码加 Logo 而不影响扫码

借助纠错机制,一个小巧居中的 Logo 可以安全地放在二维码上。本文介绍如何选择合适的纠错等级、控制 Logo 尺寸、保持背景干净,并正确测试扫码效果。

作者:QRCodeMax.Vip 5 分钟阅读

二维码(QR code)中间完全可以放一个 Logo,而且不会影响扫码。这要归功于二维码自带的纠错机制:它的设计初衷就是重建被遮挡、污损或破损的图案,而一个小小的 Logo,在扫码器眼里就属于"被遮挡"。只要把 Logo 做得小而居中、垫在干净的背景上、使用高纠错等级,并避开三个角落的方块,加 Logo 的二维码就能稳定工作。

二维码承载的不只是数据本身。那些黑白模块的排布中,还包含数据的多份冗余副本——由算法生成、散布在整个符号之中。扫码器读取时,并不只是解码眼前看到的内容,它还会发现"哪里缺了",然后把缺失的部分重建出来。

这套修复能力分为四档,称为纠错等级:L、M、Q、H。大致来说,它们分别能重建整个符号的约 7%、15%、25% 和 30%。这些数字来自 QR 规范本身,各类生成工具则把它们变成了设置菜单里的选项。

当你把 Logo 盖在二维码中央时,扫码器会把被盖住的区域当作损伤来处理。只要损伤范围在可恢复限度之内,扫码器就能重建被遮住的数据,得到和完好二维码一样的结果。这就是带品牌的二维码能够成立的原因:Logo 占用的,正是纠错机制本来就预留出来"可以牺牲"的空间。

选高纠错等级——并了解代价

如果打算加 Logo,请在生成二维码之前就把纠错等级设为 H。H 级能恢复约 30% 的符号,给 Logo 加上真实使用中的磨损——划痕、反光、折角的传单、沾了指纹的屏幕膜——都留出了充足的余量。

代价是密度。冗余数据要占地方,同一个链接用 H 级编码,所需的模块数量比 L 级或 M 级更多。同样大的物理尺寸里塞进更多模块,每个方块就更小,而更小的方块对相机来说更难分辨——尤其在远距离、光线昏暗或手机较旧的情况下。一个 M 级下秒扫的二维码,印小了换成 H 级就可能变得迟钝。

两个习惯可以控制密度。第一,编码尽可能短的链接:带一堆追踪参数的长网址会把图案撑大,短链接则给冗余留出空间,不会挤占模块。第二,永远不加 Logo 的二维码不必用 H 级——那是为用不到的保护白白付出密度代价。

Logo 可以多大?

把 Logo 的宽度控制在二维码总宽度的五分之一左右或更小。把它当作经验法则而非硬性规定:并没有一个官方数字,但保持在 20% 以下,是带品牌二维码能留出从容安全余量的区间。

这条规则背后的数学其实很友好。居中放置、宽度为五分之一的 Logo,只占整个符号面积的很小一部分,因为二维码是二维的。H 级的恢复能力因此还有大量富余。

问题出在 Logo 变大之后。达到三分之一宽度时,被遮挡的面积加上普通的印刷损伤,可能把二维码推向纠错能力的极限,扫码会最先在最弱的相机上失败——而那些设备恰恰是你自己测不到的。如果想让 Logo 更醒目,更好的做法是生成一个更大的二维码、让 Logo 保持相对较小,而不是在小二维码上放大 Logo。

Logo 要居中放置。二维码中部是最安全的位置,因为角落和边缘承载着完全没有纠错保护的结构图案——这正是下一节的主题。

Logo 背后要留出干净的背景

Logo 下方及其周围的区域,在扫码器眼里应该是一块完整、干净的空白。大多数自己动手加 Logo 的二维码,恰恰是在这里出的问题。

常见的错误是把透明背景的 PNG 直接叠上去。深色模块会从 Logo 的镂空处透出来,扫码器读到的是一堆半遮半掩的方块——既不是干净的深色,也不是干净的浅色,模棱两可。这种随机噪声比一整块空白更难纠正,因为修复机制在能清楚识别"缺了什么"时才最有效。

解决办法很简单。使用不透明的 Logo,或者把 Logo 放在一块纯白或浅色的底上——圆角方块就很好用——把下方的模块完全盖住。这样扫码器看到的是一个规整的空白矩形,正是纠错机制最容易处理的那种"损伤"。

顺手也保护一下二维码其余部分的清晰度。模块应是浅色背景上的深色,保持强对比,不要为了配合品牌色而褪成淡彩色。同时保持静区——围绕整个二维码的那圈空白边距——干净无物,不要放文字、边框或图形,因为扫码器要靠这片边距来框定符号范围。

永远不要遮挡定位图案

随便看一个二维码,你会发现三个大的方形标记:左上、右上、左下。它们是定位图案(finder patterns)。扫码器首先要找到它们;它们告诉相机二维码在哪里、方向如何、网格多大。

定位图案是结构,不是数据。纠错机制不会为它们做备份,因为一旦没有它们,扫码器根本不会把这个图形识别为二维码。哪怕只盖住一个定位图案的一部分,大多数相机就干脆认不出这是一个码——其余设计再克制也没用。同样不能动的,还有沿顶部和左侧边缘、在定位图案之间延伸的那条深浅交替的细线——时序图案(timing pattern)。

这就是 Logo 应该居中的原因,也是你该抵制某些设计潮流的原因——把定位图案缩小成装饰性的"眼睛",或把它们融进 Logo。它们也许好看,但等于拆掉了二维码的把手,任何纠错等级都找不回来。三个角落的方块,请让生成器画成什么样就保持什么样。

发布前在多部手机上测试

一个只在你自己手机上能扫的 Logo 二维码,说明不了什么。相机素质、扫码软件、屏幕亮度差异很大,而最先出问题的往往是高密度码——高纠错等级恰恰会产出这种码。

印刷或发布之前先测试。至少用三四部手机扫码,最好包括一部较旧或入门级机型,两大主流系统都要覆盖。按最终物理尺寸打一份样张,扫纸面而不只是扫屏幕;全屏显示时没问题的码,印成小贴纸就可能失败。真实场景也要试:海报按一臂距离扫,餐厅菜单在昏暗灯光下扫,再按人们实际的习惯——随手一瞥、斜着角度——快速扫一次。

然后核对结果,而不只是听那声"滴"。确认扫码器打开的是你想要的目标地址。如果有任何一部手机迟疑、要扫好几次或干脆失败,就缩小 Logo、加强对比度,或者用更大的尺寸重新生成——QRCodeMax.Vip 这类免费生成器让你几秒钟内就能调整纠错等级和 Logo——然后重新走一遍测试。每轮只要几分钟,却可能省下一次昂贵的重印。

结语

核心要点:纠错机制是 Logo 得以存在的前提,所以要顺着它工作,而不是绕开它。使用 H 级纠错,让 Logo 居中、不超过码宽的五分之一左右、垫在干净的浅色底上,三个定位图案原样保留,最后在几部真实手机上按最终尺寸测试。做到这些,带品牌的二维码就能和普通二维码一样可靠地被扫出。

常见问题

带 Logo 的二维码应该用哪个纠错等级?
用 H 级,它能重建约 30% 的符号。它会让图案更密集,但当 Logo 本身就要遮挡一部分符号时,这正是值得的取舍。
Logo 最大可以多大?
居中放置,宽度控制在二维码总宽度的五分之一左右或更小。这是经验法则而非官方上限,但能为印刷损伤和较弱的相机留出从容的安全余量。
可以用透明 Logo,让二维码图案透出来吗?
不建议。半遮半掩的模块比一整块干净的空白更容易让扫码器混乱。请使用不透明的 Logo,或把它垫在纯白或浅色的底上,盖住下方的模块。
为什么我的 Logo 二维码在有些手机上扫不出来?
相机和扫码软件差异很大,密度更高的码会最先在较旧或入门级的相机上失败。发布前请在多部手机上、按最终印刷尺寸、在真实光线条件下测试。
可以把三个角落的方块改成品牌风格吗?
不可以。这些定位图案是扫码器定位和辨别二维码方向的依据,纠错机制并不保护它们。遮挡或缩小它们,通常会导致二维码完全无法被识别。