了解微信二维码生成原理 轻松玩转二维码
2020-08-04 18:20:24 2271
关于二维码的故事,是从什么时候开始?大家都习惯这个四四方方,或者偶尔变个形状,上面有星星点点,一扫就能跳转的小东西的呢。二维码的出现,实实在在的方便了我们的生活。这么神奇的小东西,您是否真正的了解呢?是否能自己独自生成二维码设计?
二维码是一种特殊类型的条形码,可对数字,字母和日文字符等信息进行编码。本教程是为想要学习二维码的编码过程的程序员编写的。编码过程很复杂,特别是在生成纠错码(error correction code words)的步骤中。本教程将尝试用简单的术语解释整个过程。
二维码历史
二维码格式在1994年由日本公司Denso-Wave创建,该公司是丰田的子公司,生产汽车零部件。该标准定义在ISO / IEC 18004:2006中。
最小的二维码是21x21像素,最大的是177x177像素。尺寸称为Version。21x21像素大小是Version 1,25x25像素大小是Version 2,依此类推。177x177大小像素是Version 40。
此外,二维码包括纠错:当您编码二维码时,您还创建一些冗余数据,这将有助于QR读取器准确读取二维码,即使它的一部分是不可读的数据,也不会影响读取正确的信息。
二维码中有四种级别的纠错,最低的是L,它可以校准7%的字码。之后是可以校准15%的M,然后是可以校准25%的Q,最后是可以校准30%的H。
一个二维码的容量取决于它的版本和错误纠正级别,以及编码的数据类型。二维码可以编码四种数据模式:数字,字符,字节或日文。(ps:实际上还有Extended Channel Interpretation (ECI) mode、Structured Append mode和FNC1 mode,一般情况下用不到,所以作者也没有介绍。)
创建二维码的基本步骤
第一步:数据分析
二维码编码一串文本。二维码标准有四种编码模式:数字,字符,字节和日文。每种编码模式将文本编码为一串二进制数字(1和0),但每个模式使用不同的方法将文本转换为二进制数字,并且每个编码模式使用尽可能最短的一串二进制数字来编码数据。因此,第一步应该是进行数据分析,以确定该文本是否可以符合数字,字母,字节或日文模式的编码,然后选择最优化的编码模式。
第二步:数据编码
当你为需要编码的文本选择了合适的编码模式,下一步是对该文本进行编码。数据编码部分介绍了每种编码模式的详细过程。此步骤的结果若干组8位长的数据码。
第三步:生成纠错码
如上所述,二维码使用纠错。这意味着你得到了该文本对应的数据码后,必须再使用这些数据码生成纠错码(Reed-Solomon error correction)。
二维码扫描器读取数据码和纠错码。通过比较两种码字,扫描仪可以确定是否正确地读取了数据,如果它没有正确地读取数据,则可以利用纠错码纠正数据码的错误。纠错编码部分详细解释了由数据码产生纠错码的过程。
想要了解更多信息,请阅读维基百科上关于的Reed-Solomon error correction的文章。
第四步:最终编码
前面步骤生成的数据码和纠错码必须以一定的顺序排列。对于大尺寸的二维码,数据码和纠错码必须分块排列,这些块必须依据二维码的规格说明交错排列。
第五步:模块放置在矩阵
前面产生数据码和纠错码在正确的顺序排列它们之后,必须将这些二进制数字以特定的方式放置在二维码矩阵中。
第六步:掩码图案
二维码扫描器有时很难正确读取特定模式的码字。针对这种情况,二维码规范中定义了八个掩码图案,每种特定的图案都可以改变原始的二维码图案。
第七步:格式和版本信息
最后一步是在先前步骤留下空白的特定区域中增加格式和(如有必要)的版本信息。格式信息定义了纠错等级和掩码图案的模式。版本信息定义了二维码矩阵的大小和并且仅存在于较大的二维码中。
如今随着智能手机的普及,移动互联网爆发加剧,二维码在线上线下的应用会日益普及。作为设计师玩转二维码非常重要,MAKA有提供给宝宝很多好玩的有特点的二维码模版,一定能让你创造出专属二维码作品。打开MAKA在线制作平台(https://maka.im)现在就动手吧!上面有很多素材可以选择,支持在线编辑哦。