简体中文

文本和日常工具·二维码和条形码工具包

一个二维码可以容纳多少数据?版本 1 到 40 和容量说明

· 背景

二维码 编码 可用性

QR 网格从稀疏版本增加到密集最大矩阵
原始 ToolAcre 矢量图

解释 40 QR 版本、网格大小、编码模式和纠错如何结合起来设置容量,以及为什么理论最大值很少是实际的。

变成不可读的灰色方块的代码 - 当您编码段落而不是链接时会发生什么

长音符甚至可以在编码器拒绝它之前将紧凑的符号变成密集的微小模块。这种视觉变化很重要,因为固定的打印宽度为每个添加的行和列留下了更少的像素或打印机点。

密度在模块计数器和物理证明中都可见。生成器可以接受长注释,但固定大小的预览现在包含许多较小的单元格,稍后打印可能会使它们模糊。容量回答是否可以构建矩阵,而不是选择的打印机和电话是否可以解析它。在减少边距或单元尺寸之前先减少有效负载,因为这些变化会攻击扫描仪的视觉证据。

版本 1 到 40 — 21×21 模块每侧增加四个到 177×177,以及每个步骤添加的内容

该实现支持 QR 版本一到四十:第一个版本每侧 21 模块,然后每侧另外四个模块,直到 177。自动选择选择适合 UTF-8 字节有效负载和校正级别的最小版本。

版本尺寸提供了一个简单的可观察阶梯:版本一的 21 模块,然后每一步每侧四个附加模块,直到 177。这些测试验证了跨校正级别的 `4n + 17` 尺寸规则。 ToolAcre 要求自动选择的依赖项,而不是公开版本字段,因此用户应该读取生成的模块计数,而不是强制进行表查找。

此工具包中的容量为 UTF-8 字节模式容量;所有模式发布的最大值都在实现之外

通用容量表将数字、字母数字、字节和汉字模式分开,但 ToolAcre 故意对每个有效负载使用字节模式。复制其他模式最大值会错误地描述此工具,因此此处的容量以编码的 UTF-8 字节来衡量。

UTF-8 字节长度解释了为什么相同的字符计数可能会表现不同。四十个 ASCII `x` 字符使用的字节数少于四十个日语字符,并且测试确认多字节有效负载需要至少同样大的矩阵。因此面板显示字节而不是字符。通用数字或字母数字最大值不会预测 ToolAcre,因为它通过字节模式发送每个有效负载。

容量取决于所选的校正级别;使用实现的确切字节限制

验证的上限是 L 处的 2,953 字节、M 处的 2,331、Q 处的 1,663 和 H 处的 1,273 。这些是实现常量,而不是对实际打印质量的承诺,更强的校正为有效负载字节留下了更少的空间。

确切配置的上限还定义错误路径:L 处的 2,953 字节、M 处的 2,331、Q 处的 1,663 和 H 处的 1,273。这些是在界面中显示的有效实现图。它们不应转换为字符数,因为重音符号和表情符号的 UTF-8 长度各不相同。当某个值超出容量时,缩短它比默默删除内容更安全。

实用上限 — 相机分辨率、打印尺寸和扫描距离将可用范围缩小到远低于版本 40

当打印太小或在太远的地方观看时,技术上适合的矩阵仍然可能是糟糕的物理设计。相机分辨率、静区、对比度和基材降低了实际的上限,这就是为什么短 URL 通常比整个记录更可取的原因。

实际范围取决于整个符号。更强的校正可以使相同文本的矩阵更大,正如 L 和 H 之间的 200 字符测试所示。在固定的打印宽度下,这会缩小每个模块。因此,提高校正不会自动变得更安全:冗余可能会容忍一些损坏,而增加的密度会使干净捕获变得更加困难。选择一个级别,然后测试生成的物理代码。

工作示例:比较生成的模块计数,而不是从内存预测确切版本

生成一个短 URL、受支持的 vCard 和长纯文本注释,然后比较返回的模块计数并扫描校样。源代码没有公开任意文本的有保证的版本估计器,因此请观察实际输出而不是猜测。

对于示例集,在相同的更正级别生成一个短 HTTPS URL、受支持的 vCard 和 500 字符注释。记录字节数和模块尺寸,而不是预测确切的版本。 vCard 在可见的联系人数据周围添加了字段标签和分隔符,因此其编码长度不仅仅是表单中出现的长度之和。

这不包括什么 - 跨多个代码和 Micro QR 的结构化附加

未实现结构化追加和 Micro QR。 ToolAcre 也不会在符号之间分割过大的有效负载;它报告内容太长并建议缩短内容或选择较低的更正级别。

ToolAcre 不会将数据划分为多个代码,也不提供 Micro QR。过大的有效负载会返回错误而不是部分图像。如果记录太大,请将其托管在稳定的 URL 后面,或选择其多符号格式和读取器支持满足要求的专业工具。将文本手动剪切成不相关的 QR 图像会给扫描仪和用户带来组装问题。

要点 — 尽可能对指针而不是有效负载进行编码,并让 QR 和条形码工具包为您输入的内容选择版本

当目标可以托管更大的记录时,对指针进行编码,将长期存在的 URL 置于您的控制之下,并让生成器选择矩阵。容量是字节预算,而可靠使用是物理系统测试。

操作要点是一个层次结构:保留正确的内容,删除不必要的字节,选择适当的校正级别,观察生成的矩阵,然后调整大小并测试它。理论上的最大值是编码器的最终边界,而不是设计目标。短指针通常为强大的模块留出更多空间,并允许目标内容更改而无需替换打印。