版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linysuccess/article/details/87931067
本篇介绍二维码的基础,包括编码、解码,以及相应的纯前端(JavaScript)实现。
二维码编码
二维码本质上是文本信息的一种图形化表示。任何文本字符串进行二进制0-1编码后,按照特定规则排放到方形点阵图形上,其中黑点表示1,白点表示0,如此便可“编码”出一个二维码图形。
二维码的实际应用中,一个二维码通常用来编码一串URL。URL本身就是互联网世界的入口,随着智能手机普及和“扫一扫”的流行,二维码就成为移动互联网的绝佳入口。
注意,文本信息越长,编码后二维码点阵数量越多,识别起来就相对会困难些。作为一物一码来讲,比较理想的URL长度≤32。
在纯前端实现上,jquery.qrcode.js以及很多前端开发框架都集成了二维码编码的功能。二维码图形在HTML页面上的呈现通常有2中做法:
- HTML table实现,每个table-cell表示二维码点阵中一个点
- 在Canvas上面画出黑白的点阵
二维码解码
根据一张包含二维码的图片识别出二维码中的文本信息。解码的算法在很多后端语言都有相应的实现版本,前端js版本也有。参考GitHub:LazarSoft/jsqrcode。
某一物一码官网也有二维码解码功能,具体可查看http://www.jixiangma.cn/?page=tool。
注:实际上是没有上传图片的过程的,整个解码过程在浏览器端完成。
解码的js调用类似下面的样子:
qrcode.decode(imageFile, function(codeText) {
console.log(codeText);
});