二维码在生活中无处不在,之前我也使用过java的
zxing
库生成过二维码,功能很强大。
但是其实
node
js上也有很多第三方库能够生成二维码。今天我们就是使用qrcode这个库来生成二维码。【相关教程推荐:
nodejs视频教程
】
效果展示
在线示例: http://www.lolmbbs.com/tool/qr
详细代码
生成二维码:
下载二维码:
主要参数解释
type: 生成图片类型
主要包括
、
、
这三种类型.
ps: 但是我在代码中即使设置type为
,发现生成的图片还是png,后来仔细阅读文档才知道toDataURL这个方法只支持生成png类型的图片…
width
: 二维码的宽度
发现没有height字段设置,可能是生成的二维码都是正方形吧
X-Node企业快速建站1.0.6.0801
特色介绍: 1、ASP+XML+XSLT开发,代码、界面、样式全分离,可快速开发 2、支持语言包,支持多模板,ASP文件中无任何HTML or 中文 3、无限级分类,无限级菜单,自由排序 4、自定义版头(用于不规则页面) 5、自动查找无用的上传文件与空目录,并有回收站,可删除、还原、永久删除 6、增强的Cache管理,可单独管理单个Cache 7、以内存和XML做为Cache,兼顾性能与消耗 8、
下载
margin
: 内边距
内边距设置为10
内边距设置为0
scale
放缩的倍数
如果设置了width,优先生效width,则此参数无用.
放缩比例为5
放缩比例为10
color.light:
前景色
color.night:
背景色
默认的前景色是黑色,背景色为白色。
errorCorrectionLevel
纠错级别
二维码即使有部分显示不了,依然可以识别出二维码的内容,这就是二维码的纠错。
L级别的纠错代表只要残缺度小于7%,就可以被识别出,以此类推
更多node相关知识,请访问:
nodejs 教程
!
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)image/pngimage/jpegimage/webimage/jpeg