二维码原理和使用注意:容错级别、尺寸、印刷与安全
二维码已经无处不在:付款、点餐、加好友、看说明书、连 Wi-Fi。自己做一个二维码只要几秒钟,但做出一个“哪台手机都能一下扫出来”的二维码,需要了解一点原理。本文介绍二维码(QR Code)的基本结构,以及制作、印刷和使用时的注意事项。
一、二维码的结构
QR Code 由日本 DENSO WAVE 公司于 1994 年发明,现为国际标准 ISO/IEC 18004。观察一个二维码,可以看到:
- 三个“回”字形的大方块:位于左上、右上、左下三个角,叫定位图案。扫码软件靠它们找到二维码并判断方向,所以二维码旋转、倒置都能扫。
- 校正图案:较大的二维码在右下附近还有小的“回”字,用于纠正弯曲和透视变形。
- 定时图案:定位图案之间黑白相间的虚线,帮助确定每个小方块(模块)的位置。
- 数据区和纠错码:其余部分存放编码后的内容和纠错数据。
- 静区:二维码四周的空白边,标准要求至少 4 个模块宽。
二、版本:二维码有多大
QR Code 共有 40 个版本。版本 1 是 21×21 个模块,版本每增加 1,边长增加 4 个模块,版本 40 是 177×177。内容越多,需要的版本越高,图案就越密。同样印成 2 厘米宽,版本 2 的二维码每个模块比版本 10 的大得多,自然更容易扫。
实用结论:二维码里放的内容越短越好。长网址最好先换成短一些的网址,或者把参数精简。
三、容错级别
二维码使用 Reed-Solomon 纠错码,即使部分被遮挡或污损,也能恢复数据。共有四个级别,可恢复的码字比例大约为:
- L:约 7%
- M:约 15%
- Q:约 25%
- H:约 30%
级别越高,纠错数据越多,同样内容下二维码越密。一般用途选 M;印在容易磨损的物品上,或中间要放 logo 时,选 Q 或 H。
四、编码与中文
二维码支持数字、字母数字、字节、汉字等编码模式。纯数字最省空间,中文通常以 UTF-8 字节方式存储,一个常用汉字占 3 个字节。因此同样长度的中文比英文需要更大的二维码。如果扫出乱码,可能是生成工具和扫码软件对编码的处理不一致,优先使用 UTF-8。
五、印刷和展示的建议
- 尺寸:业内常见的经验是,扫描距离约为二维码边长的 10 倍左右。例如海报在 2 米外看,二维码边长最好在 20 厘米上下。这只是经验值,印刷前务必实测。
- 保留静区:四周留足空白,不要让文字、边框贴着二维码。
- 颜色对比:深色前景、浅色背景。反色(浅码深底)、低对比度的配色,部分扫码软件识别不了。
- 材质:避免印在反光强的材料或曲面上;户外要考虑褪色。
- 导出格式:印刷用高分辨率 PNG 或矢量格式,不要把小图片放大后印,会模糊。
- 多机测试:用不同品牌的手机、微信和系统相机都扫一遍,并在实际距离和光线下测试。
六、加 logo 要注意
中间放 logo 实际上是“故意遮挡”一部分数据,依靠纠错来恢复。所以:选择 H 级容错;logo 面积不宜过大,一般控制在二维码面积的十分之一左右以内;不要遮住三个定位图案。做好后同样要多机测试。
七、静态码和活码
静态码把内容直接编在图案里,永久有效,不依赖任何服务器,但印出来后内容不能改。活码里存的是一个服务商的跳转网址,后台可以修改目标内容、统计扫描次数;缺点是依赖服务商,服务停止或账号到期,二维码就失效。印在长期使用的物品上时,要慎重选择。
八、安全提醒
- 扫码前看清来源,公共场所贴着的二维码可能被覆盖替换。
- 扫码后先看打开的网址,警惕仿冒的登录页和支付页。
- 不要扫码下载来历不明的 App。
- 自己发布二维码时,在旁边写上简短的网址或说明,方便用户核对。
本站的 二维码生成器 支持中文、四档容错和自定义颜色,可下载 PNG,在浏览器本地生成,不经过任何服务器,属于静态码。生成前可以先用 字数统计 看看内容长度,尽量精简。