二维码是如何设计出来的?

【CSDN 编者按】打开二维码,扫一扫,可以付钱、加好友、查看详情......现如今,二维码已成为科技驱动的世界中不可或缺的一个便捷途径,那么你有没有想过二维码是如何被设计出来的?又是如何工作的?近日,一位名为 Dan Hollick 的设计师分享了其中的种种,我们不妨一起来了解一下。

原文链接:https://typefully.com/DanHollick/qr-codes-T7tLlNi

声明:本文为 CSDN 翻译,未经允许,禁止转载。

作者 | Dan Hollick

译者 | 弯月

出品 | CSDN(ID:CSDNnews)

QR码(Quick Response Code,快速响应矩阵图码)是二维码的一种,于1994年由日本汽车零组件大厂电装公司的原昌宏所发明,用于在制造过程中跟踪零件。

在日常生活中,条形码的使用也很常见,但它们有一定的局限性:只能以特定的角度读取,并且存储的数据量非常有限。

而QR码解决了这些问题。

QR码最大的特征为其左上、右上、左下三个大型的如同“回”字的正方图案,名叫“定位标志”,用于帮助解码软件定位,如下图红色方块所示。

还有一个较小的正方图案,名叫“校正标志”,用于帮助解码软件识别QR码的方向和角度,这样解码软件就可以从任何角度读取QR码,如下图粉红色方块所示。

每个QR码都有黑白相间的点线,称为“定时标志”,用于确定QR码的宽度以及点数,如下图蓝色点线所示。

下图中虚线可以告诉读者整个 QR 可以有多大,其中版本 2 是最小的版本,版本40是最大的。

有关格式的信息存储在定位标志附近的两条点带中,如下图的黄色点所示。

格式信息存储了两次,因此即使QR码被部分遮挡也可以读取。

格式信息保存了三种关键信息:

  • 掩码的类型
  • 纠错等级
  • 纠错格式

纠错等级代表了QR码中存储了多少冗余信息,纠错的目的是即使部分信息丢失也仍然可以读取。

纠错等级

L等级(Low)

7%的字码可被修正

M等级(Medium)

15%的字码可被修正

Q等级(Quartile)

25%的字码可被修正

H等级(High)

30%的字码可被修正

纠错等级越高,就意味着冗余等级越高,因此QR码遭到破坏时仍然能被读取的可能性就越高。如下QR码虽然右下角有一大片被覆盖,但仍然能被读取,你可以试试看。

QR码在白色区域和黑色区域数量相同时读取的效果最好。如果数据区域出现连续的空白或者连续的黑色区,就需要用到掩码。

当利用掩码处理QR码时,数据区上对应掩模黑色模块的单元将会反转。

白色区域会变为黑色,而黑色区域会变为白色。

QR码提供八种掩码模型,这些掩码会被逐个尝试,直到找到效果最好的掩码。掩码的信息会存储下来,供读取装置解除掩码使用。

最终,我们将得到实际数据。

不过,这个数据是从右下角开始的,按照如下图所示的方向返回。

由于QR码可以从任何角度读取,因此实际上从哪里开始读取都没关系。

QR码中的第一块信息可以告诉我们数据编码的模式,而第二块信息是数据的长度。

在我们的例子中,每个字符包含8个比特(也就是一个字节),一共有24个字节。

上图中,绿色空间存储的是我们的数据,后面还有大量未使用的空间。

这些空间被用来存储纠错信息,如下图中紫色空间所示,目的是在QR码遭到损坏时依然能够读取,当然实际的工作方式非常复杂,我不打算在此详细讨论。

以上就是QR码的基本知识!

最后附上一张完整的说明图。

标题:二维码是如何设计出来的?

地址:http://www.hmhjcl.com/gzdm/3605.html