Qraft

宽高比

二维码的宽高比始终以 1:1 的正方形为原则,一旦纵向或横向拉伸就会扫不出来。宽高比指的是图像或显示区域的纵横比例,常见的有 16:9(宽屏)、4:3(早期电视)、1:1(正方形)等,它是决定照片裁剪方式和视频显示形式的基本参数。

二维码是正方形(宽高比 1:1)。在 ISO/IEC 18004 标准中,二维码符号被定义为正方形的矩阵。三个寻像图形(位置探测图形)的排布也以正方形为前提,宽高比一旦失真,解码器就无法正确检出寻像图形,于是出现扫描错误。

1:1 正方形二维码与横向拉伸后的二维码在寻像图形上的差异1:1 正方形 - 可以扫描横向拉伸 - 扫不出来
横向拉伸之后,三个寻像图形不再是正方形,解码器也就检不出来。

实务中比例失真最常见的场合,是在设计软件里摆放二维码图像时,没有锁定纵横比就直接拖动缩放。变成横长或纵长的二维码,肉眼看上去似乎还能扫,但换一台扫描设备就可能完全识别不了。在设计软件中缩放二维码时,必须打开「锁定纵横比」的选项。变形之外的扫描失败原因与处理办法,可参见「二维码扫不出来时的原因与处理办法」;印刷物上的尺寸设计,可参见「二维码的尺寸与印刷的最佳解」。

下面整理常见的宽高比,以及能不能用在二维码上。

宽高比主要用途用在二维码上
1:1(正方形)二维码的符号本身ISO/IEC 18004 规定的形状
4:3早期电视的画面相当于拉伸,扫不出来
16:9宽屏影像相当于拉伸,扫不出来
长方形(rMQR)标签、软管、电路板等细长空间需要支持 rMQR 的解码器

想把二维码做成长方形该怎么办?

把普通二维码拉成长方形会引发扫描错误,应当避免,改为考虑长方形格式的派生标准 rMQR(Rectangular Micro QR Code)。它就是为细长空间(标签、软管、电路板)上的印刷而设计的,允许与普通二维码不同的宽高比。不过 rMQR 需要专用的解码器,一般手机的相机应用可能并不支持读取,采用前要先用实际使用的设备验证。

另一个折中办法是保持二维码本身为正方形,只把它周围的白底做成长方形。静区(二维码四周的空白)本来就要求四边各留 4 个模块以上,把这块空白向左右延展,既能填满细长的版面,又不会破坏码本身的比例。