jsQR 是一款纯粹的由javascript实现的二维码识别库,可以在浏览器端使用,也可以在后端node.js环境使用。我之前使用过其他的识别库,例如:qrcode-reader 或其他,在使用上都比较麻烦,而且识别率并不高。jsQR是后来发现的,感觉(没有实际对比验证)jsQR识别率要更高些,使用起来也更简单,不需要安装其他依赖软件。
我是通过jsQR来识别扫描图上的二维码信息,扫描图都比较大,分辨率都比较高,之前还想着把图中包含二维码部分的切出来再做处理的,后来发现,识别率还可以,不至于那么惨淡,就没有做,直接把整个图片传递进行识别处理的。
这里只放识别部分的代码,其他的就不贴了,业务很简单,识别某文件夹内所有图片的二维码,然后根据二维码信息做些处理而已。
识别代码
var jsqr = require('jsqr');
var Jimp = require('jimp');
var buffer = fs.readFileSync(filePath);
Jimp.read(buffer).then(function(blockimg){
var width = blockimg.bitmap.width,
height = blockimg.bitmap.height,
imgData = blockimg.bitmap.data;
var code = jsqr(imgData,width,height);
if(code){
console.log(code.data);//内容
}else{
console.log('未识别成功')
}
}).catch(function(err2){
if(err2){
console.log(err2);
cb(null,null);
}
});
我这里同时又使用了jimp
模块,这个模块也是一个独立的由javascript
实现的一个对图像进行处理的工具,包括一些常见的裁剪、灰度处理、大小、图片质量等。
哪里可以找到他们
npm :
github :
感受
在整理使用上来说,jsQR识别率及调用都相对更好些,近期我会就这个模块以及其他几个模块做下识别率对比,看下哪个更高些。当然如果对于识别率要求不高的话,jsQR在操作上也更简单。