• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

php用nodejs生成二维码

武飞扬头像
PHP中文网
帮助31

二维码在生活中无处不在,之前我也使用过java的zxing库生成过二维码,功能很强大。

效果展示

在线示例: http://www.lolmbbs.com/tool/qr

学新通技术网

详细代码

生成二维码:

const qrCode = require('qrcode')
class QrController {
  async create (ctx) {
    const { text = 'Luban', options } = ctx.request.body
    const qrOptions = {
      type: 'image/png',
      width: 180,
      margin: 0,
      scale: 1,
      color: {
        dark: '#000000',
        light: '#ffffff'
      },
      errorCorrectionLevel: 'M',
      quality: 1
    }
    Object.assign(qrOptions, options)
    const imgData = await qrCode.toDataURL(text, qrOptions)
    return ctx.success({ imgData })
  }
}

module.exports = new QrController()

下载二维码:

const a = document.createElement('a')
const event = new MouseEvent('click')
a.download = '二维码'
a.href = this.imgSrc
a.dispatchEvent(event)

主要参数解释

  • type: 生成图片类型
    主要包括 image/pngimage/jpegimage/web这三种类型.
    ps: 但是我在代码中即使设置type为image/jpeg,发现生成的图片还是png,后来仔细阅读文档才知道toDataURL这个方法只支持生成png类型的图片…
    学新通技术网

  • width: 二维码的宽度
    发现没有height字段设置,可能是生成的二维码都是正方形吧

  • margin: 内边距
    内边距设置为10
    学新通技术网
    内边距设置为0
    学新通技术网

  • scale 放缩的倍数
    如果设置了width,优先生效width,则此参数无用.
    放缩比例为5
    学新通技术网
    放缩比例为10
    学新通技术网

  • color.light: 前景色

  • color.night: 背景色
    默认的前景色是黑色,背景色为白色。

  • errorCorrectionLevel 纠错级别
    学新通技术网
    二维码即使有部分显示不了,依然可以识别出二维码的内容,这就是二维码的纠错。
    L级别的纠错代表只要残缺度小于7%,就可以被识别出,以此类推

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfhgee
系列文章
更多 icon
同类精品
更多 icon
继续加载