如果你想要一个既能体现品牌色、又能稳定扫描的二维码,请别再纠结"颜色",转而思考"色调":唯一重要的是码比背景深多少。白底上的深藏青码扫起来和黑码一模一样,而同一个白底上的淡黄色码可能根本扫不出来。把对比度做对,几乎任何色相都可以用。
为什么对比度比颜色更重要
手机相机或扫码应用根本看不见你精心挑选的品牌色。它会把图像转成灰度,再用一个亮度阈值把画面压缩成纯黑和纯白:比阈值暗的像素变成黑色,其余全部变成白色。经过这道处理后,留下来的不是色相,而是色调——也就是模块相对于背景有多深。
这就解释了为什么在人眼看来截然不同的两种颜色,在扫码器眼里可能完全一样。白底上的深绿、深藏青和黑色,最后都会被归并成同一幅"深色浅底"的图像。反过来,深绿底上的红色二维码——两种都很"正"的品牌色——却可能彻底消失,因为红色和深绿色的亮度接近,尽管色相截然相反。
这也是为什么一个设计在屏幕上看着没问题,到了现场却扫不出来:人眼可以轻松辨认低对比度的图像,而解码器必须对每一个模块做出非黑即白的判断。色相是给人看的,对比度是给机器看的。关于二维码颜色的一切决定,都应该从这里出发。
唯一的规则:比背景深
二维码的官方规范(ISO/IEC 18004)把符号定义为浅色背景上的深色模块,所有扫码器都是围绕这个假设设计的。所以实用规则很简单:模块必须明显比背景深,最好深得多。
两个容易被忽略的细节:
- 静区很重要。二维码四周那段空白边距——按规范是四个模块宽——必须保持背景色。如果你把深色码放在深色页面上,边距融进了设计里,扫码器就找不到码从哪里开始。
- 背景包括码后面的东西。照片上浮着一个白色码框,只有当照片永远不会侵入边距时才可靠。花哨的背景是"设计稿里能扫、实际场景失灵"的常见原因。
为什么反色码在某些扫码器上会失败
反色码把方案倒了过来:深色背景上的浅色模块。有些扫码软件能正常处理——先识别图案,再翻转图像,然后照常解码。很多现代手机应用正是这么做的。
但也有许多扫码器不行。一些手机自带的相机应用、老旧机型、专用手持扫描枪和收银设备只认浅色表面上的深色图案,因为规范描述的就是这种形式。反色码可能在你自己的手机上扫得好好的,却在顾客的设备上悄无声息地失败,而你永远不知道是哪一台。
这就是反色的核心问题:你无法控制用哪种扫码器来读你的码。海报会被路过的任何一部手机扫描。有些生成器把反色做成一键样式选项;请把它当成一种必须在你能找到的每台设备上测试过的样式,而不是默认选择。如果品牌一致性重要,更稳妥的做法是保持深码浅底,把品牌色放进深色模块里——在那里它不会造成任何伤害。
会破坏扫描的渐变和其他装饰
渐变是最常见的自伤。扫码器对整张码只应用一次阈值。如果你的渐变从上到下由深变浅,浅的那一端可能跌破阈值,模块融进背景。结果就是一张"半张能读"的码——而读不了的那一半往往包含解码器必需的数据。在屏幕上看似含蓄的渐变,印出来可能致命。
同样的逻辑也判了一整族装饰的死刑:
- 码底下的照片或花纹,它们带来扫码器无法分离的中间调。
- PNG 文件里的透明背景,在不同设备上可能渲染成白色,也可能渲染成黑色,取决于查看方式。
- 包装上的金属油墨或烫金,反光难以预测,在某些光线下会冲淡对比度。
- 小尺寸印刷上过细或装饰性的模块形状,油墨扩散会让图案糊掉。
平整、纯色、高对比、深码浅底。无聊,但稳定可扫。
挑选既能体现品牌又能扫出来的颜色
你不必放弃品牌感,只需要选品牌色里深的那一端。一个实用的经验值——借自网页无障碍指南,而非二维码规范——是让模块色与背景的对比度至少达到 4.5 比 1。越高越好,贴着下限没有任何奖励。
实际操作:
- 把品牌色加深,直到接近黑色油墨的深度。色相保留下来,扫码器看到的是近似黑色。
- 背景保持接近白色:纯白、米白、奶油色,或品牌色的极浅色调。
- 完全避开中间调。白底上的黄色、橙色、浅蓝、浅绿和浅灰,都危险地贴近阈值。
- 对红色保持谨慎。白底上的红色模块用手机相机通常能扫出来,但对商店柜台那种红光激光扫描枪可能是隐形的,因为红色油墨反射红光的方式和白色背景几乎一样。如果你的码会出现在零售包装或小票上,这一点很重要。
- 记住屏幕颜色不等于印刷颜色。在显示器上达标的深蓝,转成油墨后可能变浅。要测试印刷打样,而不是设计稿。
注意,纠错功能救不了你。二维码内置的冗余可以恢复受损或被遮挡的模块,但无法恢复一个扫码器从未识别出来的符号。
用文字描述的可靠配色组合
稳定安全的组合:
- 白底黑码。成为默认是有原因的。
- 白底极深藏青。扫码器看是黑色,人眼看是品牌色。
- 白底或奶油底深墨绿。
- 奶油底深巧克力棕。温暖而不失对比度。
- 白底深梅紫或茄紫。
可行,但先测试:
- 深藏青或炭灰底白码——属于反色,很多手机能扫,另一些扫码器会失败。
- 白底中等深度的蓝——通常能过,但每浅一步就离失败更近。
预计会出问题:
- 白底上的黄色、橙色或浅灰。
- 任何中间调配中间调,比如粉彩配粉彩、浅灰底白码。
- 任何叠在照片、花纹或纹理背景上的码。
打印前的快速测试
测试只需几分钟,却几乎能抓住所有失败:
- 灰度检查。截图二维码,在任意图片编辑器里套用黑白滤镜。如果模块和背景变成了相近的灰色,说明对比度太低——换什么色相都救不回来。
- 多设备扫描。至少用两部不同的手机、用自带的相机应用扫描,不要只依赖第三方扫码应用。自带扫码器最不宽容,因此也最诚实。
- 按最终尺寸打印。扫描实际印出来的成品,站在真实用户会站的位置,在与投放环境相近的光线下进行。屏幕上能扫的码,在哑光纸、铜版纸或昏暗的海报墙上都可能失灵。
- 设计有任何改动后重复测试。重新上色、挪动位置或缩小尺寸,都可能破坏原本可行的组合。
QRCodeMax.Vip 这类免费工具让你几秒钟内重新上色并在屏幕上复测,让这个循环便宜到真的可以执行。
要点总结
颜色是品牌决定,对比度是生存要求。让模块明显深于浅色背景,除非经过充分测试否则跳过渐变和反色,并在定稿前用真实设备扫描印刷成品。做到这些,你就可以放心把品牌色放上二维码,让它在所有需要它的地方都能工作。