二维码内容解析

发布于 2023-05-12 09:02:42 字数 2105 浏览 61 评论 0

配图源自 Freepik

如果需要获取二维码的原始内容,可以这样操作:

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
}

以上用到 jimpqrcode-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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
23 人气
更多

推荐作者

亽野灬性zι浪

文章 0 评论 0

少年亿悲伤

文章 0 评论 0

南七夏

文章 0 评论 0

qq_EJoXxu

文章 0 评论 0

17780639550

文章 0 评论 0

萌逼全场

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文