跳到主要内容
QRCodeMax.Vip

二维码的颜色与对比度:什么样的能扫,什么样的不能

扫码器读取的是色调深浅,而不是色相:只要模块比背景深得多,二维码就能扫出来。了解反色码和低对比度配色为什么失败,以及如何挑选既能体现品牌又能稳定扫描的颜色。

作者:QRCodeMax.Vip 5 分钟阅读

如果你想要一个既能体现品牌色、又能稳定扫描的二维码,请别再纠结"颜色",转而思考"色调":唯一重要的是码比背景深多少。白底上的深藏青码扫起来和黑码一模一样,而同一个白底上的淡黄色码可能根本扫不出来。把对比度做对,几乎任何色相都可以用。

为什么对比度比颜色更重要

手机相机或扫码应用根本看不见你精心挑选的品牌色。它会把图像转成灰度,再用一个亮度阈值把画面压缩成纯黑和纯白:比阈值暗的像素变成黑色,其余全部变成白色。经过这道处理后,留下来的不是色相,而是色调——也就是模块相对于背景有多深。

这就解释了为什么在人眼看来截然不同的两种颜色,在扫码器眼里可能完全一样。白底上的深绿、深藏青和黑色,最后都会被归并成同一幅"深色浅底"的图像。反过来,深绿底上的红色二维码——两种都很"正"的品牌色——却可能彻底消失,因为红色和深绿色的亮度接近,尽管色相截然相反。

这也是为什么一个设计在屏幕上看着没问题,到了现场却扫不出来:人眼可以轻松辨认低对比度的图像,而解码器必须对每一个模块做出非黑即白的判断。色相是给人看的,对比度是给机器看的。关于二维码颜色的一切决定,都应该从这里出发。

唯一的规则:比背景深

二维码的官方规范(ISO/IEC 18004)把符号定义为浅色背景上的深色模块,所有扫码器都是围绕这个假设设计的。所以实用规则很简单:模块必须明显比背景深,最好深得多。

两个容易被忽略的细节:

  • 静区很重要。二维码四周那段空白边距——按规范是四个模块宽——必须保持背景色。如果你把深色码放在深色页面上,边距融进了设计里,扫码器就找不到码从哪里开始。
  • 背景包括码后面的东西。照片上浮着一个白色码框,只有当照片永远不会侵入边距时才可靠。花哨的背景是"设计稿里能扫、实际场景失灵"的常见原因。

为什么反色码在某些扫码器上会失败

反色码把方案倒了过来:深色背景上的浅色模块。有些扫码软件能正常处理——先识别图案,再翻转图像,然后照常解码。很多现代手机应用正是这么做的。

但也有许多扫码器不行。一些手机自带的相机应用、老旧机型、专用手持扫描枪和收银设备只认浅色表面上的深色图案,因为规范描述的就是这种形式。反色码可能在你自己的手机上扫得好好的,却在顾客的设备上悄无声息地失败,而你永远不知道是哪一台。

这就是反色的核心问题:你无法控制用哪种扫码器来读你的码。海报会被路过的任何一部手机扫描。有些生成器把反色做成一键样式选项;请把它当成一种必须在你能找到的每台设备上测试过的样式,而不是默认选择。如果品牌一致性重要,更稳妥的做法是保持深码浅底,把品牌色放进深色模块里——在那里它不会造成任何伤害。

会破坏扫描的渐变和其他装饰

渐变是最常见的自伤。扫码器对整张码只应用一次阈值。如果你的渐变从上到下由深变浅,浅的那一端可能跌破阈值,模块融进背景。结果就是一张"半张能读"的码——而读不了的那一半往往包含解码器必需的数据。在屏幕上看似含蓄的渐变,印出来可能致命。

同样的逻辑也判了一整族装饰的死刑:

  • 码底下的照片或花纹,它们带来扫码器无法分离的中间调。
  • PNG 文件里的透明背景,在不同设备上可能渲染成白色,也可能渲染成黑色,取决于查看方式。
  • 包装上的金属油墨或烫金,反光难以预测,在某些光线下会冲淡对比度。
  • 小尺寸印刷上过细或装饰性的模块形状,油墨扩散会让图案糊掉。

平整、纯色、高对比、深码浅底。无聊,但稳定可扫。

挑选既能体现品牌又能扫出来的颜色

你不必放弃品牌感,只需要选品牌色里深的那一端。一个实用的经验值——借自网页无障碍指南,而非二维码规范——是让模块色与背景的对比度至少达到 4.5 比 1。越高越好,贴着下限没有任何奖励。

实际操作:

  • 把品牌色加深,直到接近黑色油墨的深度。色相保留下来,扫码器看到的是近似黑色。
  • 背景保持接近白色:纯白、米白、奶油色,或品牌色的极浅色调。
  • 完全避开中间调。白底上的黄色、橙色、浅蓝、浅绿和浅灰,都危险地贴近阈值。
  • 对红色保持谨慎。白底上的红色模块用手机相机通常能扫出来,但对商店柜台那种红光激光扫描枪可能是隐形的,因为红色油墨反射红光的方式和白色背景几乎一样。如果你的码会出现在零售包装或小票上,这一点很重要。
  • 记住屏幕颜色不等于印刷颜色。在显示器上达标的深蓝,转成油墨后可能变浅。要测试印刷打样,而不是设计稿。

注意,纠错功能救不了你。二维码内置的冗余可以恢复受损或被遮挡的模块,但无法恢复一个扫码器从未识别出来的符号。

用文字描述的可靠配色组合

稳定安全的组合:

  • 白底黑码。成为默认是有原因的。
  • 白底极深藏青。扫码器看是黑色,人眼看是品牌色。
  • 白底或奶油底深墨绿。
  • 奶油底深巧克力棕。温暖而不失对比度。
  • 白底深梅紫或茄紫。

可行,但先测试:

  • 深藏青或炭灰底白码——属于反色,很多手机能扫,另一些扫码器会失败。
  • 白底中等深度的蓝——通常能过,但每浅一步就离失败更近。

预计会出问题:

  • 白底上的黄色、橙色或浅灰。
  • 任何中间调配中间调,比如粉彩配粉彩、浅灰底白码。
  • 任何叠在照片、花纹或纹理背景上的码。

打印前的快速测试

测试只需几分钟,却几乎能抓住所有失败:

  1. 灰度检查。截图二维码,在任意图片编辑器里套用黑白滤镜。如果模块和背景变成了相近的灰色,说明对比度太低——换什么色相都救不回来。
  2. 多设备扫描。至少用两部不同的手机、用自带的相机应用扫描,不要只依赖第三方扫码应用。自带扫码器最不宽容,因此也最诚实。
  3. 按最终尺寸打印。扫描实际印出来的成品,站在真实用户会站的位置,在与投放环境相近的光线下进行。屏幕上能扫的码,在哑光纸、铜版纸或昏暗的海报墙上都可能失灵。
  4. 设计有任何改动后重复测试。重新上色、挪动位置或缩小尺寸,都可能破坏原本可行的组合。

QRCodeMax.Vip 这类免费工具让你几秒钟内重新上色并在屏幕上复测,让这个循环便宜到真的可以执行。

要点总结

颜色是品牌决定,对比度是生存要求。让模块明显深于浅色背景,除非经过充分测试否则跳过渐变和反色,并在定稿前用真实设备扫描印刷成品。做到这些,你就可以放心把品牌色放上二维码,让它在所有需要它的地方都能工作。

常见问题

二维码可以用任何颜色吗?
可以,前提是模块明显比背景深,并且保持深码浅底。色相随意,对比度没有商量余地。
反色二维码能用吗?
有些扫码应用会翻转图像正常读取,但二维码规范定义的是浅色背景上的深色模块,部分扫码器只认这种形式。反色码可能在你手机上正常,在顾客设备上失败。
彩色二维码还能扫出来吗?
如果颜色在浅色背景上足够深,就可以。问题出在中间调,比如白底上的黄色、橙色、浅蓝或浅灰。
为什么我的二维码在屏幕上能扫,印出来就不行?
印刷会改变一切:油墨扩散可能糊住模块或吞掉静区,纸张涂层影响反光,屏幕色转成油墨后也会偏移。务必按最终尺寸测试印刷打样。
二维码的对比度应该达到多少?
一个借自网页无障碍指南的常用经验值是模块色与背景至少 4.5 比 1,越高越好。拿不准时,把模块加深,而不是把背景调浅。