QR码是怎么工作的?

原文链接: typefully.com/DanHollick/...

作者:Dan Hollick

你有想过QR码是如何工作的吗?

我也没有想过,但是它真的很低调很迷人~

【警告】这里有一些非常书呆子的东西👇 )

QR码是由丰田的一个子公司发明的,目的是为了在整个制造过程中跟踪零件信息。

之前出现的条形码被证明是不足够的 - 它们只能从特定的角度读取,并且相对于他们的大小来说,并不能储存很多的数据。

那么 QR 码不只解决了这些问题

QR 码最独一无二的地方在于这些正方体,这些正方体被称为"查找器",这些正方体帮助了你的阅读器检测到码的存在。

第四个小的正方体,被称作对齐模式,它是用来定向代码的,使它可以在任何角度呈现,阅读器仍然哪个方向是向上的。

你可能从来都没有注意过,但是每个 QR 码都有这些叫做定时模式的黑白相间的点。

这些黑白相间的点告诉阅读器单个模块有多大以及整个 QR 码有多大 -- 也就是版本。

版本一:最小的。 版本四十:最大的。

关于格式的信息被存在查找器旁边的两个条纹中。

它被存储了两次,所以即使QR码被部分遮挡,它也是可读的。(你会注意到这是一个反复出现的主题。)

它存储了三个重要的信息片段

  1. 掩码(Mask)
  2. 纠错级别
  3. 纠错格式

我知道这听起来很无聊,但是实际上,他还是很有意思的(doge

首先,纠错 - 这是什么玩意?

从本质上讲,它规定了在 QR 码中存储多少冗余信息,以确保即使部分信息丢失也能保持可读。

这真的很酷好吗 - 如果您的代码在户外,您可以选择更高的冗余级别,以确保它在模糊的时候也能正常工作。

试试下面这个二维码

第二个,这个 mask,这个是个什么东西?

首先你需要知道,QR 阅读器在黑色区域和白色区域的数量一样的时候工作的最好。

但是数据可能无法发挥作用,因此使用掩码来平衡。

当掩版应用于QR码时,任何落在掩码暗部的东西都会被反转。

白色区域变成黑色,黑色区域变成白色。

有8种标准模式,一个接一个地应用。使用达到最佳结果的模式,并存储该信息,以便读者可以不应用掩码。

最后呢,就到了我们的实际数据的部分。

奇怪的是,数据从右下角开始,然后像图中那样蜿蜒而上。

从哪开始几乎不重要了,因为它可以从每个角度读取。

这里的第一个信息块告诉读者数据是以什么模式编码的,第二个告诉它长度。

在我们的例子中,每个字符占用8位块,或者称为字节,共有24个字节。

在我们的数据之后还有一些剩余的空间。这是存储纠错信息的地方,以便在部分模糊的情况下可以读取。它的工作方式实际上非常非常复杂,所以我把它省略了。基本上就是这样!

对于制作 QR 码的书呆子来说,一个有意思的事实是: QR码最酷的事情是发明QR码的Denso Wave公司从未行使他们的专利,并且免费发布这项技术!

相关推荐
console.log('npc')7 分钟前
2026 实测:Grok 4.5 与 Grok 4.6 怎么选?前端开发、教程写作、Figma 还原选型指南
前端·大模型·ai编程·figma·grok
yyt36304584121 分钟前
一次鼠标交互触发两次 Vue flushJobs:把高频交互从 VDOM 里拆出来
前端·vue.js·计算机外设
YUJIANYUE28 分钟前
查立得万用查分安卓版(web环境+查询系统免安装单文件一键运行包)
android·前端
知兀43 分钟前
框架脚手架搭建,推送github一键使用
javascript·vue.js·ecmascript
慧都小项1 小时前
从 Figma 到 Qt:Qtitan 能减少哪些界面还原工作?
前端·qt·嵌入式·figma·图形界面·工业界面·qtitan
YWL1 小时前
OpenLayers导出功能:地图截图+GeoJSON导出完整方案,从Canvas合并到PDF生成
前端·vue·openlayers
苦瓜小生1 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试
mayaairi1 小时前
Vue2 实战进阶:表单数据收集、指令系统与自定义指令全解析
前端·javascript·vue.js
计算机魔术师1 小时前
实测GPT-6 Astra后,我发现过去十年的专业门槛正在失效
前端
虎头金猫2 小时前
Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具
运维·前端·开源·aigc·ai编程·ai写作