QrCode二维码的原理
二维码原理
二维码的基本原理是利用二进制来存储信息的。通常由正方形矩阵点组成。下图就是一个常见的二维码形状。它主体是一个正方形矩阵,矩阵中"黑色方块"表示二进制"1", "白色方块"表示二进制"0"。这些 1 和 0 排列组合就形成了二维码。
除了 1 和 0 的像素点之外,二维码还有三个像眼睛一样的大黑色块,叫做定位点。这是识别二维码时用来对图像进行定位的,一定不能遮挡。否则二维码将无法识别。
二维码规格(版本)
二维码一共有40个规格,是根据行数、列数来区分的。官方称为 Version。
- Version 1(即规格1)是 21 x 21 的矩阵(即二维码有21行,21列的小矩形组成)(下图就是一个 Version 1 的二维码)
- Version 2(即规格2)是 25 x 25 的矩阵
- ...
- Version 40(即规格40)是 177 x 177 的矩阵。
二维码Version越高存储的信息越多。容量最高的是 version 40、容错率为 L 的规格。可存储 2953 字节的数据(约2.9KB)
存储信息最大容量(在UTF-8编码下)
二维码可以存储多种不同的数据、字符类型。不同的字符存储容量也不同。
- UTF-8 字节数:2953 字节(约2.9KB)
- UTF-8 数字/字母数据:2953 个
- UTF-8 汉字:2953/3 = 984 个
二维码容错率
二维码具备很强的纠错能力,即使它缺损或被遮挡了一部分,也能被设备正常识别。利用这一特点,我们经常在二维码中间加上Logo,并不影响它的读取和识别。
容错率就是来衡量二维码纠错能力的参数。二维码共有四个容错等级,不同的纠错等级代表了不同的容错率。
- L级:纠错等级 7% ,可被遮挡 7%
- M级:纠错等级 15%,可被遮挡 15%
- Q级:纠错等级 25%,可被遮挡 25%
- H级:纠错等级 30%,可被遮挡 30%
二维码结构
- 规格(Version)信息:QrCode 共有 40 种尺寸的矩阵,从 21×21(Version 1),到 177×177(Version 40)
- 格式信息:表示二维码的纠错级别,分为L、M、Q、H
- 数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)
- 定位点、定时标志、校正图形:用于对二维码的定位,确定二维码的内容区域