二维码知识科普:快速了解二维码的实现原理

简介: 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。与一维条码不同的是,二维条码的长度和宽度都可以记载数据,而一维条码仅宽度记载数据。二维条码还有独特的“定位点”和“容错机制”,即使部分条码无法识别或条码受损,也能正确还原条码上的信息。

二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。与一维条码不同的是,二维条码的长度和宽度都可以记载数据,而一维条码仅宽度记载数据。二维条码还有独特的“定位点”和“容错机制”,即使部分条码无法识别或条码受损,也能正确还原条码上的信息。

此外,二维条码的种类繁多,不同的机构开发的二维条码具有不同的结构和编写、读取方法。

堆叠式/行排式二维条码,如 Code 16K、Code 49、PDF417(如下图)等。

矩阵式二维码,最受欢迎的是QR CODE。与一维码相比,二维码具有更大的数据存储量,可以包含数字、字符和中文文本等混合内容。它还具有一定的容错性,即使部分损坏,仍能正常读取。此外,二维码的空间利用率也更高。

常用二维码对比

活码的原理

活码,作为二维码的高级形态,赋予了二维码更多的可能性。它通过短网址链接至云端信息,使得二维码图案更为简洁、易扫描。更重要的是,活码的内容可以随时更改,而图案保持不变。这极大地便利了二维码的印刷与管理工作,甚至可以先印刷图案,之后再设置内容。

从理论上来说,活码可以支持无限的内容,我们也没有对文本的字数做任何的限制。然而,实际操作中可能会受到网络带宽和服务器性能的影响。当输入过多的文字时,可能会影响二维码的生成与扫描速度。同样,图片和文件的大小也没有限制,但过大的内容可能在手机端无法显示,这与手机的网络状况有关。所以,实际操作中,还是需要把握活码的使用。

这项技术的原理虽简单,却极为实用。现在许多软件和应用都能生成活码。草料并非此技术的原创者,但我们看到了许多企业和个人对这项技术的需求。为此,草料提供二维码系统搭建平台,让更多人能够轻松掌握这项技术。用户只需注册并登录,即可使用简单易用的内容编辑器创建和修改自己的二维码。管理后台则帮助用户有序管理所有创建的二维码,并掌握扫码数据和反馈信息。所有的网页内容存放在公有云上,不仅运行安全、稳定,还省去了高昂的基础设施投入和开发维护成本,节约了应用成本。

用相同的内容制作的二维码为什么图案不同

基本概念:二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它在代码编制上巧妙地利用了构成计算机内部逻辑基础的“0”和“1”比特流概念,通过使用与二进制相对应的几何形体来表示文字数值信息。通过图像输入设备或光电扫描设备,这些信息可以实现自动处理。

二维码具有一些条码技术的共性,如每种码制有其特定的字符集,每个字符占有一定的宽度,并具有一定的校验功能。此外,二维码还具有自动识别不同行信息的功能,并能够处理图形旋转变化点。

值得注意的是,同样的内容,不做任何修改,反复生成的二维码图案都不一样。这是由于这些特定的几何图形是按照一定规律随机分布在平面上的。这就好比一个句子,无论是从左到右写还是从上到下写,表达的都是同一个意思。对于二维码来说,也是同样的道理。

什么是容错率

容错率也叫纠错率,就是指二维码可以被遮挡后仍能被正常扫描,而这个能被遮挡的最大面积就是容错率。

最常见的QR二维码,用的是里德-所罗门码(RS)来做纠错。分有几级,纠错级别越高,整体需要携带的信息越多:L级可纠正约7%错误、M级别可纠正约15%错误、Q级别可纠正约25%错误、H级别可纠正约30%错误。RS码原理比较复杂,整体基于“任意k个确定点可表示一个阶数至少为k-1的多项式”,实际上发送超过k个点,就算中间有一些错误,也能通过数学原理反推出最初的多项式,从而获得信息。并不是所有位置都可以缺损,像最明显的那三个角上的方框,直接影响初始定位。中间零散的部分是内容编码,可以容忍缺损。

由于调整纠错率的时候,二维码的图案分布也要重新调整,所以每次调整纠错率,二维码的图案都会发生变化。

相关文章
|
JSON JavaScript 前端开发
小白一眼就能懂的JSON简介与基本使用指南
小白一眼就能懂的JSON简介与基本使用指南
|
存储 JSON 分布式计算
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
MongoDB【部署 01】mongodb最新版本6.0.5安装部署配置使用及mongodb-shell1.8.0安装使用(云盘分享安装文件)
713 0
|
编解码
LabVIEW条形码识别(实战篇—5)
LabVIEW条形码识别(实战篇—5)
LabVIEW条形码识别(实战篇—5)
|
存储 机器学习/深度学习 人工智能
二维码生成原理和解码原理
二维码(Quick Response Code,简称QR码)是一种广泛使用的二维条形码技术。二维码能有效地存储和传递信息,广泛应用于商品追溯、支付、广告等多个领域。二维码的主要特点是信息存储量大、读取速度快、容错能力强等。
2385 2
|
10月前
|
监控 数据可视化 安全
中小企业固定资产管理:破解3大痛点,用1个系统省下20%运营成本
中小企业在固定资产管理中常面临资产流失和隐性成本问题,如账实不符、低效盘点和权责不清等。这些问题导致利润被“偷走”,人力成本增加,资产流失难追溯。应用资产管理系统如草料二维码,通过“一物一码”实现资产信息透明化、扫码盘点、多级权限管理和数据统计,帮助企业减少审计成本、降低库存、提高资产使用率,快速部署且使用简单,是中小企业的理想选择。
|
存储 算法 数据挖掘
技术经验解读:二维码(QRcode)基本知识
技术经验解读:二维码(QRcode)基本知识
4400 0
|
消息中间件 开发框架 Java
掌握这一招,Spring Boot与Kafka完美融合,顺序消费不再是难题,让你轻松应对业务挑战!
【8月更文挑战第29天】Spring Boot与Kafka集成广泛用于处理分布式消息队列。本文探讨了在Spring Boot中实现Kafka顺序消费的方法,包括使用单个Partition或消息Key确保消息路由到同一Partition,并设置Consumer并发数为1以保证顺序消费。通过示例代码展示了如何配置Kafka Producer和Consumer,并自定义Partitioner。为确保数据正确性,还建议在业务逻辑中增加顺序校验机制。
712 3
|
Linux
linux 删除乱码文件名的文件
【8月更文挑战第26天】当遇到文件名显示为乱码,导致无法正常通过键盘输入文件名进行删除操作时,可以利用鼠标的复制功能配合`rm`命令实现删除。对于文件夹的删除,可使用`rm -rf 目录名`。然而,有时这种方式仍无法删除某些特殊乱码文件,这时可以通过获取文件的i节点号(使用`ls -i`或`ll -i`命令查看)并执行`find -inum [节点号] -delete`来进行删除。这种方法特别适用于处理那些因文件名问题而难以删除的情况。
512 2
|
XML 前端开发 JavaScript
Web的三个主要部分
Web的三个主要部分
2411 1
|
存储 定位技术 API
C语言实战 -- 经典贪吃蛇游戏(含完整源码)
C语言实战 -- 经典贪吃蛇游戏(含完整源码)
500 1