Qraft

为什么是黑与白——那个图案不做成彩色的科学理由

黑与白是「对比度最高」的组合

摄像头在读取图案时,最重要的一点是「能分清白与黑」。颜色明暗程度的差异叫作「对比度」。白(亮度 100%)与黑(亮度 0%)的组合,对比度达到最大值。比这更高的对比度在物理上并不存在。

对比度越高,摄像头就越能准确地区分白与黑。光线暗的地方、较远的距离、倾斜的角度、有污渍的表面——要在这些不利条件下都维持扫描精度,把对比度最大化就是最合理的选择。黑与白不是「外观上的偏好」,而是工程上的最优解。

做成彩色会发生什么

红与蓝、绿与橙。彩色的图案看着确实赏心悦目,但对摄像头来说就变得难以读取了。人的眼睛能敏锐地感知颜色的差别,而摄像头的传感器是以「亮度」为判断基准的,所以亮度相近的颜色之间(比如红与绿)很难区分开。

此外还有一个问题:照明的色温不同,看到的效果也会变。在白色荧光灯下显得偏蓝的颜色,换到橙色灯泡下就会显得发绿。摄像头会用白平衡去校正,但校正并不完美。如果是黑与白,无论在什么照明下,「亮」与「暗」的区分都不会改变。

对色觉多样性的照顾

日本男性中约有 5%(每 20 人里就有 1 人)具有难以区分红与绿的色觉特性。放到全世界,据估计约有 3 亿人具有某种色觉多样性。假如图案是由红与绿构成的,这些人在扫描时就有可能遇到困难。

黑与白则与色觉的差异无关,所有人都能以同样的方式辨认。因为明暗的差别不受色觉特性的影响。从通用设计的角度来看,黑与白也是包容性最强的选项。

即便如此仍想做成彩色时的规则

如果出于设计上的理由想做彩色的图案,只要守住几条规则,也是可以扫描的。最重要的一条是「采用暗色与亮色的组合」。深蓝配白、深绿配白、黑配黄,这些组合的对比度足够高,大多数摄像头都能读取。

应当避开的是亮度相近的颜色之间的搭配。红与绿、蓝与粉、橙与黄,它们的对比度低,读取失败的风险明显更高。另外,把图案的背景做成暗色、把方格做成亮色的「反转」做法也可行,但部分老式扫描设备可能无法识别。

读取设备看到的只有明暗

扫描二维码的机器看到的并不是颜色本身,而只是亮还是暗的差别。它把摄像头捕捉到的图像,以某一亮度为界分成明与暗两类,再从这些明暗的排列里解读出信息。黑与白正是这种明暗差最大的组合,所以分界线容易辨认,读取也就稳定。为什么不做成彩色,答案就在这里。相比颜色好不好看,能否把明暗清晰地区分开,在确保读取成功这件事上要重要得多。

明暗差小了会发生什么

把亮色与亮色、或者暗色与暗色搭在一起,读取设备划分明与暗的那条界线就会变得含糊,读取也就容易失败。举例来说,在黄色背景上放接近白色的方格,或者在深蓝背景上放黑色的方格,人眼虽然还能看出图案,机器却很难分辨。再加上照明的状况、印刷时轻微的洇墨,这个差距还会进一步缩小。想让它稳稳地被扫出来,把背景与方格的明暗差尽可能保持得大一些,是比什么都重要的基本功。

在美观与可靠之间取得平衡

想按品牌色给码上点颜色,这种需求很自然。用颜色本身并没有被禁止,但即便如此,把背景与方格的明暗差保持充分这条原则也不会改变。方格选深色、背景选亮色,让两者的差别一目了然,那么加上一定程度的色彩,读取依然能够保住。要紧的是,不能因为过于看重外观,就牺牲掉它本来的职责——可靠地被读取。加了装饰之后,务必用多台设备试一试,确认功能有没有被破坏。

印刷与屏幕显示颜色不一致的问题

在电脑屏幕上做好的彩色图案,印出来颜色可能会变。屏幕用的是光的三原色(RGB:红、绿、蓝)来表现颜色,而印刷用的是油墨的四原色(CMYK:青、洋红、黄、黑)。这道转换会让色调发生偏移,屏幕上原本足够的对比度,到了印刷品上就可能不够。

要印刷彩色的图案,印完之后请务必用手机做一次扫描测试。在屏幕上能扫出来、印在纸上却扫不出来的情况并不罕见。想省掉这道麻烦,那还是黑与白最靠得住。用黑与白的话,无论 RGB 还是 CMYK,都不会出现色调偏移。