二维码内容解析
如果需要获取二维码的原始内容,可以这样操作:
const Jimp = require('jimp') const QrcodeReader = require('qrcode-reader') async function parseQrcode(qrcodePath) { const image = await Jimp.read(qrcodePath) // 可以是本地路径、网络链接 const originContent = await new Promise((resolve, reject) => { const qr = new QrcodeReader() qr.callback = (err, value) => { if (err) { reject(err) return } resolve(value.result) } qr.decode(image.bitmap) }) return originContent }
以上用到 jimp 和 qrcode-reader 来个库。
假设我们有这样一个二维码,就能解析到其原始内容。
parseQrcode('https://upload-images.jianshu.io/upload_images/5128488-4997f2bfcc035f07.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240') .then(res => { console.log(res) // https://mp.weixin.qq.com/a/~~piirdiB7tRQ~GYk703f8DizEuFT0tGHcvA~~ })
我遇到的一个场景是,微信小程序项目接入官方的 CI 工具以提供二维码「预览」时,默认情况下二维码过大,导致在终端体验不佳。
因此,我的做法是对 CI 工具生成的二维码进行解析,获取到其原始内容(如上,其实就是一个 URL 而已),然后利用 qrcode-terminal
或 qrcode 等主流库重新打印「尺寸较小」的二维码到 Terminal 上。
const qrcode = require('qrcode-terminal') qrcode.generate('qrcodeOriginUrl', {small: true})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论