赞
踩
生成二维码使用qrcode库
npm install qrcode -S
import qrcode from 'qrcode'
qrcode.toString('hello world', (err,res) => {
if(err) throw err;
console.log(res);
});
效果如下:
在浏览器中打印会返回svg图片
二维码通常是以图片展示,便于保存,能够用图片显示一种是通过url,一种是通过base64展示,还可以通过canvas绘制显示。
由于浏览器不能生成文件因此,不能通过生成url进行展示,因此通过base64进行展示。
使用qrcode生成base64数据,需要使用toDataURL()方法。
qrcode.toDataURL('hello world', (err, res) => {
if(err) throw err;
console.log(res);
let img = new Image();
img.onload = function (){
document.body.appendChild(img);
}
});
使用 qrcode 通过canvas绘制显示,需要使用 qrcode.toCanvas() 方法
qrcode.toCanvas('hello wrold', (err,res) => {
if(err) throw err;
// 返回的结果是canvas元素
document.body.appendChild(res);
});
效果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/03bba6500f1f439bb018f8b58aa5bce2.png#pic_center
qrcode库在浏览器端和服务端能使用的API数量是不一样的,以上几个API可以在浏览器端使用,
下面几个只能在服务器端使用,在服务器端除了下面几个特有的API之外还包括上面几个API。
在服务器端可以把二维码输出为一个文件
qrcode.toFile()
参数:
qrcode.toFile('./output/qrcode.png','hello world', (err,res) => {
if(err) throw err;
console.log(res,err);
});
qrcode.toFile()调用完毕后会在指定路径生成一个文件,该文件就是生成的二维码图片。
qrcode.toBuffer()
参数:
qrcode.toBuffer('hello world', (err, res) => {
console.log(res, err);
});
qrcode.toBuffer()返回的是一个Buffer数据
有的时候需要将二维码图片解析成文本数据,例如,手机扫描二维码显示数据,这时就需要把获得的二维码图片解析成能够显示的文本数据。
解析二维码使用qrcode-parser库
npm install qrcode-parser -S
import qrcodeParser from 'qrcode-parser'
// 生成一个二维码
qrcode.toDataURL('hello world', (err, res) => {
//解析二维码
qrcodeParser(res).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
});
});
效果如下:
qrcodeParser(input):
let fileInput = document.getElementById('qrCodeInput');
fileInput.onchange = function(e){
let file = e.target.files[0];
qrcodeParser(file).then(res => {
console.log(res);
});
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。