在二维码中央放入标志或表情:为什么仍能扫描
二维码中央放入标志或表情后依然可以扫描,靠的是纠错机制。本文介绍标志大小的上限与警告、内置图标与上传图片的区别、如何把表情从表情制作器发送过来、如何准备标志图片,以及如何在真机上测试。
- 发布日期
- 更新日期
你大概见过中央印着品牌标志或可爱表情的二维码。码点最密集的中心被一幅图盖住了,手机居然还能读出来,这似乎有些奇怪。弄清楚其中的原理后,标志最大能做到多大、该选什么样的图片这些实际问题也就迎刃而解了。本文先简要说明原理,然后重点讲解添加中央标志的实际操作。关于装饰二维码的通用建议,另有专门的指南,这里只谈标志。
为什么二维码被遮住一部分仍能扫描
每个二维码都带有一道名为纠错的安全网。数据编码时,会同时存入额外的恢复信息,所以即使二维码的一部分被弄脏、划伤或撕破,摄像头也能凭剩下的部分重建出原始内容。放置标志,其实就是有意遮住二维码的一部分,被遮住的部分是由这笔恢复预算来承担的。
纠错共有L、M、Q、H四个等级。按照广为引用的标准数值,它们大约可以恢复二维码的7%、15%、25%和30%。等级越高,能承受的损坏越多,但同样的信息需要更多码点,图案也就更密。
- L(约7%):适用于干净的屏幕显示。留给标志的余量很小。
- M(约15%):常见的默认等级。
- Q(约25%):可承受轻微的装饰或少量损坏。
- H(约30%):最稳固的等级,也是放置标志时最合适的选择。
还有一个常见的误解需要说明。能恢复30%,并不意味着可以用标志遮住30%的二维码。遮挡的面积与可恢复的比例并非一一对应,而手抖、油墨洇开等现实中的干扰也会消耗同一笔余量。真正分配给标志的比例,应当远低于理论上限。
添加标志后纠错等级会自动提高
在设计二维码中,你不必自己管理这项设置。开启中央标志后,纠错等级会自动设为H,屏幕上也会出现一条简短的提示。没有标志时,应用可能会根据情况使用较低的等级;一旦添加标志,就会切换到最稳固的等级。
这也是有代价的。在H级下,同样的网址需要更多码点,所以在同样大小的页面上,每个码点都会变小,而且网址越长,影响越大。如果打算添加标志,请尽量缩短网址。长网址再加上标志,会形成非常密集的图案,缩小打印后可能很难读取。
标志大小的上限与警告:具体数值
设计二维码把标志大小按占二维码主体面积的比例来处理,这个面积包含标志周围的留白。应用内置的数值如下。
- 默认值为二维码主体的8%。
- 超过10%时,会出现警告:标志较大,扫描可能有困难,请在下载前用真机确认。
- 上限为20%。如果设置得更大,标志会被缩小到20%以内,并提示已被缩小。
标志区域会对齐二维码的码点网格,并始终居中。横向的码点数会调整为奇数,所以实际看到的大小可能与输入的百分比有极小的差别。另外,在这块区域内,图案也会离边缘稍微内缩一点,因此图片本身看起来会比标志区域略小。
这些数值的读法很简单。从默认值附近开始,把10%当作一个信号:从这里往后,请自己验证。没有出现警告,并不保证所有设备都能读出,而20%的上限是应用允许的最大值,不是推荐值。
用内置图标,还是上传标志?
中央标志分为两种:应用内置的图标,或你上传的图片。二选一,不能同时使用。
- 内置图标:有链接、Wi-Fi、相机和聊天气泡。它们用二维码自身的颜色简洁地绘制,对比度很稳定,也不需要准备图片。如果你的二维码用途明确,这是最稳妥的选择。
- 上传的标志:支持不超过15MB的PNG、JPG或WebP文件。想展示自己的品牌或角色时使用。图片只在浏览器内处理,不会发送到服务器。
如果是第一次做,请先用内置图标确认二维码可以扫描,再换成你自己的标志。如果在某个尺寸下,内置图标能读出而你的标志读不出,那问题就出在图片上,也就更容易知道该修改什么。
把表情从表情制作器发送到二维码中央
表情是最简单的标志。如果你已经在表情制作器中用文字或图片做好了表情,就可以直接把它用作二维码的标志。表情制作器的表情预览区域有一个“用此表情制作二维码”按钮。
- 在表情制作器中制作表情。
- 点击按钮,设计二维码页面会在新标签页中打开。如果没有出现新标签页,可能是浏览器拦截了弹出窗口,请允许弹出窗口后重试。
- 新标签页准备好后,你的表情会作为中央标志应用上去,页面切换到设计模式,并显示一条“已将表情添加为标志”的提示,持续三秒。
- 输入二维码要包含的链接,调整标志面积,然后保存。
这种传递只发生在两个浏览器标签页之间。表情图片不会经过服务器,而是由打开的两个标签页在浏览器内部互相传递。接收方页面只接受来自表情制作器网站的PNG图片,会忽略其他格式、外部地址以及尺寸超出范围的图片。图片必须在页面准备好后的十秒内送达,收到第一个表情后,之后的消息都会被忽略。你已经输入的内容(例如链接)不会受到影响。
表情和其他标志遵循完全相同的规则:同样的大小上限和警告,纠错等级同样被强制设为H。表情色彩丰富、轮廓圆润,很适合做标志,但如果贪大,它也会和其他图片一样无法扫描,所以请用同样的方法检查。
重复使用最近上传的图片
比较几个标志候选图时,你会一遍又一遍地选择同样的文件。为了省去这个麻烦,设计二维码会把成功载入的上传图片保存在“最近上传的图片”列表中。
- 只保存5MB以下的原图,最多八张,按最新在前排列,最旧的会先被删除。
- 超过5MB的文件,在15MB的上传上限内仍可用作标志,但不会出现在列表中。
- 点击列表中的图片,无需再次选择文件,就会将其载入为标志。同一份列表也与图片形状和图片二维码功能共用。
- 可以逐项删除,也可以用全部清除按钮清空列表。
该列表只保存在你当前使用的浏览器中,不会发送到服务器。如果在公用电脑上使用了个人图片,用完后请清除列表或浏览器的网站数据。
如何准备标志图片
即使大小相同,所选图片不同,二维码被读取的可靠程度也会不同。养成几个习惯,就能明显减少失败。
- 使用背景透明的PNG。残留的白色方块看起来很别扭,还会让标志显得比实际需要的更大。使用透明PNG时,只有图案的轮廓会放在二维码上。
- 保持形状简洁。尺寸小时,细线条和小字会糊成一团。粗壮简单的形状、单个字母或单个表情都能保持辨识度。
- 确保对比度。如果标志颜色太浅,或是接近二维码码点的深色,就会和周围的码点融在一起。请选用与码点明显区分开的颜色。
- 尽量裁成接近正方形。过宽的标志在同样的区域内会显得小得多。
- 避免使用照片。缩小后细节会消失,颜色会变浑浊。如果非用不可,请选择对比强烈、主体较大的照片。
- 使用不是自己制作的图片时,请确认你拥有使用权。
扫描验证标识与真机测试
预览区域会显示扫描状态。检查期间显示“正在检查扫描结果…”;一切正常时显示扫描验证通过;如果二维码可能难以读取,则会显示提示,并建议提高颜色对比度或缩小标志。放大标志时,留意这个指示在哪里发生变化,你就能体会到安全的限度在哪。
不过,这个标识只是参考。摄像头硬件和扫码应用因手机而异,印在纸上的二维码与屏幕上的表现也不同。验证通过的标识并不保证所有设备都能读出,所以最终的结论要交给真机。
- 扫描下载的文件,而不是屏幕上的预览。
- 按实际使用的尺寸打印一份。打印得越小,标志后面丢失码点的影响就越大。
- iPhone和Android手机都试一试,既用默认相机应用,也用单独的扫码应用。如果可以,也请测试较旧的机型。
- 在人们实际站立或就座的距离、角度和光线下扫描。
- 确认打开的页面就是你想要的网址。读取成功与到达正确的目的地是两回事。
如果读取效果不好,请逐项撤销改动。缩小标志面积最有效,其次是提高码点与背景的对比度、印得更大、缩短网址。这个顺序是经验法则,不是标准,请首先相信自己的测试结果。
最后,设计二维码是一款无需注册、在浏览器中运行的免费工具。你可以制作各种形状的二维码、图片二维码、带文字说明的边框二维码和Wi-Fi二维码,并保存为PNG或SVG。你输入的内容不会发送到服务器。先从内置图标或表情轻松开始,从8%左右起一点点扩大标志面积,每次都扫描保存的文件,自己找出极限。如果对某个标志不满意,可以在内置图标、上传图片和表情之间随意切换,次数不限。
