前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【白话技术】二维码

【白话技术】二维码

原创
作者头像
元坑昊
发布2022-06-23 19:02:56
5990
发布2022-06-23 19:02:56
举报
文章被收录于专栏:元坑昊思迹元坑昊思迹

上一篇文章,我写了“如何定制带背景的二维码”。对于二维码,说实话,对其背后的原理我也不了解。跟大家一样,只知道它是用来扫一扫的。可能比大家多了解的一点是,我知道扫一扫之所以能够跳出些内容,是因为在二维码内存放了这些内容。但我心中依然存在一些疑惑:

  • 二维码怎么来的?
  • 二维码怎么存东西?

今天就来给大家讲讲这两点,也是我最近才学习的。

二维码历史

相信大家对一维码比较熟悉,即条形码。在各种商品的包装袋上,都会带上一个条形码。超市购物时,使用专门的仪器扫一扫条形码就可以录入所购买的商品。之所以能够进行录入,是因为一维码中存放了商品的编号。

随着经济快速发展,人们发现一维码能够存放的内容比较有限,它只能存放30个字母或数字。对于商品来说还够用,但对于网址来说,就根本不够用了。而且,一维码的空间占比也比较大。虽然是一维,但为了保证扫码速度,需要把一维拉长。不知道大家有没有这样的经历,有时候商品扫不出来,把条形码扯平一点就可以了。

既然一维不够用,聪明的人类就想到了加个维度,即二维。二维码的类型有很多:堆叠式/行排式、矩阵式等,简单看下就好:

堆叠式二维码
堆叠式二维码
矩阵式二维码
矩阵式二维码

不同类型的二维码按照编码方式的不同,还细分了很多种。感兴趣的同学可以自行搜索。我们今天常用的二维码叫:QR Code(快速响应码),它在1994年诞生于日本丰田(Toyota)一家生产汽车零部件的子公司 Denso-Wave。它可以存放7000多个数字、4000多个字母、900多个中文汉字(够存一篇800字作文),可见其信息量比一维码大了几个数量级。

在国内,二维码最开始兴起于支付行业,即扫码支付。随后,二维码又广泛应用于存储身份信息,比如说公众号、小程序、视频号等等。今天来看,二维码的应用已经很广了,“扫一扫”变成了一个通俗易懂的词汇。

二维码原理

接下来,我们简单说说二维码是怎么存内容的。参考链接:https://www.pudn.com/news/628f83e1bf399b7f351ebf7d.html。

二维码能存放内容,关键在于两个点:

  • 对图形区域进行规定,标准化每个区域的作用
  • 将要存放的信息进行编码,存到二维码的数据区域

我们先来看下二维码的各区域,如下图:

二维码区域定义
二维码区域定义

二维码通过三个边界点圈定了二维码图片的范围。为什么不是四个?因为二维码是一个矩形,三个点就能圈定范围,节省区域可以多存点信息。

区域划定后,将需要存放的信息进行编码,转成01字节流,然后分块存放到二维码的数据区域。如下图所示:

二维码数据存放
二维码数据存放

最终,0表示空白,1表示黑点,就构成了二维码中黑白相间的图案。扫码时,按照同样的标准从二维码数据区域中读取信息,解码后就可以得到存放在二维码中的信息。所使用的APP在读出信息后,根据信息类型进行下一步的操作,比如说读出了网址,跳转到对应的页面。

总结

今天首次尝试使用白话讲技术,可能还有没讲清楚的地方,欢迎大家留言提建议。一起加油吧,各位。


文章首发于“元坑昊思迹”公众号,欢迎关注,了解更多元坑昊的所思所想。

图片
图片

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二维码历史
  • 二维码原理
  • 总结
相关产品与服务
云支付
云支付(Cloud Pay,CPay)为您提供开放、可靠的聚合收款技术服务和商户管理功能。云支付支持刷卡支付、扫码支付、一码多付多种支付方式。服务商也可使用云支付提供的 SDK 和 HTTPS 接口,将云支付集成进自己的系统中,为商户提供的个性化解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档