在开发一个取件的小程序与 nodejs 服务端的过程中发现,假定运用网上现有的二维码生成 API ,存在某些问题比如央求需求较长时间,数据格局较为固定,因为整体业务上也不git指令需求二维码的风格化git教程,最好能够前端与 nodejs 服务git教程端通用。

经过简略的google服务结构googleplay调研挑选了 QRCode.js

QRChtml代码ode.js 项目

QRCode.js 是一个用于giti生成二维码的 JavaScript 库。主要是通canvas登录过获取 DOM 的标签,再经过 HTML5 Canvas 制造而成,不依google地球托任何库。他支撑 nodejs 端,浏giti览器端,以及小程序端。

1. 设备 QRCode.js

npm install --save qrcode

2. 配备生canvas的中文意思成二维码canvas动画的特征

const QRCode = require('qrcode')
const options = {
errorCorrectiogoogle空间nLevel: 'H',
type: 'thtml5erminal',
quality: 0.95google翻译,
margin:app设备下载 1,
color: {
dark: '#000'git指令,
light: '#FFF',
},
}
  • errorCorrectionLAPPevel:纠错功能使您即便符号变脏或损git教程坏也能成功扫描QR码。

根据操作环境,有四个等级可供挑选。

Level Error resistancgocanvas登录ogleplay安卓版下载e
L (Low) ~7%git教程
M (Medium) ~15%
Q (Quartile) ~HTML25%
H (High) ~30%

html标签级越高,供应的抗差错性越好gitee,但会下降符号的容量

Modegoogle商铺 Lcanvas M Q H
Numeric 7089 5596 3993 3057
Alphanumeric 4296 3391 2420 1852
Byte 2953 2331 1663 1273
Kanji 1apple817 1435applehtml 1024 784
  • color:指定QR码图画的颜色

dark:二维码主体颜色,light:二维google码布景颜色

  • Type:指htmAPPl标签定期望的输出类型,html代码googleCanvas空间如数据URL中的html网页制造 image / pnhtml个人网页完好代码g,image / jpeg,image / webhtml是什么意思p和utf8,SVG,字符串中的终端。

  • qualityapproach设置图画的质量,规git指令模为0-1html标签。 默认值为giti是什么牌子0.92,仅适用于image / jpeg和image / webp类型

  • width:设置图画的边长

假定width太小而不能包括二维码的悉数信息符号,HTML则此选项approve将被疏忽。

  • margin:设置图画的git指令外边框间隔

  • scappreciateale:设置每几个像素为一个信息点默以为 4

3. 设置输出

canvas动画览器端的运用方法

能够经过烘appear托到 Canvas 画布进行运用

<html>
<body>
<canvas id="appearancecanhtml个人网页无缺代码vasappearance"><APP/canvas>
<script src="bundle.approvejs"></script>
</body&gtgiti是什么牌子;
</html>

运用前需求运用打包东西构建依托

vaapprover QRCode = requircanvas登录e('qrcode')
var canvas = document.ggoogle谷歌查找主页egiteetElementById('canvas')
QRCode.toCanvas(google商铺canvas, 'sample text', function (errcanvas交大or) {
if (error) console.error(error)
consolhtml网页制造e.log('success!');
})

或许直接烘托 base64 或许 图画文件 (png ,svg ,jpeg)

nodejs-servappearanceer 端常见运用方法

转成终端可输出的字符串

toStappearring(text, [opthtml网页制造ions], [cb(error, string)])
回来QR码的字符串标明方法。
假定挑选的输出格局是svg,appstore它将回html代码来一个包括xhtmlml代码的字github中文官网网页符串。


QRCode.tgoogle商铺oString([
{ data: 'qrcode test in nogithub永久回家地址dejs', mode: 'byte' },
]
).approvethen(qrImage => {
console.log("terminal", qrImcanvas的中文意思age)
}).catch(err => {
console.error(err)
})

转成包括二维码图片信息的gitlab Base64 编码 url
toDataURL(text, [options], [cb(errorappear, url)])
回来包括QR码图画标明方法的数据URIcanvas渠道
现在仅适用于 image / png类型。

QRCode.toDataURL('qrcode test in nodejs', options).then(qrImage => {
console.log("URL", qrImage)
})html代码.catch(err =>Canvas {
console.error(err)
})

转成图片方法存储
toFile(pagithubth, text, [opgiti轮胎tions], [cb(html标签特征大全error)])

将QR Code保存到图画文件。
假定google未指定options.type,则将从文件扩展名中猜测格局。

QRCode.toFilegithhtmlub('appstore./images/qrgoogle翻译Code.png', "qrcode test in nodejs", options)
.then(()gitlab => {
console.lohtml5g("success")
}).catch(err => {
console.error(err)
})

无缺 node-segoogle谷歌查找主页rver 端 demo

const QRCode = require('qrcode')
const options = {Git
ergoogle空间rorCorrectioAPPnLevel:html是什么意思 'H',
type:canvas渠道 'terminal'appreciate,
quality: 0.95Canvas,
margin: 1,
color: {
dark: '#000',
light: '#FFF',
},
}
QRCode.toString([
{ data: 'qrcode tesgiteet in nodejs', mode: 'byte' },canvas
]
).then(qrImage =&Gitgt; {
cogiti是什么牌子nsole.log("githubterminal", qrImage)
}googleapple地球).catch(err => {
congiti轮胎solhtml标签特征大全e.error(errapplication)
})
QRCode.google地球toDataURL('qrcode tehtml是什么意思st in nodejs', options).thengit教程(qrImage => {gitee
console.logcanvassed("URL", qrImage)
}).approvecatch(err => {
console.error(err)
})
QRCohtml标签特approve色大全de.toFile('./images/qrCode.sgoogleplayvg', "qrcode test in napplicationodejs",Git options)
.then(() => {
consoappstorele.log("success")
}).catch(err => {
conappstoresole.error(err)
})

QRcode 一同支撑 ES5 / ES6 / ES7 的语法

import QRCode from 'qrcanvas软件codeapprovappreciatee'
// With Callback
QRCode.thtmloString('http://www.giti轮胎google.com', functiogoogle商铺ngit指令 (err, string) {
if (eGitrr) throgit教程w err
console.log(string)
}googleplay安卓版下载cangit教程vas)
/application/ With promises
QRCode.appletoDataappearanceURcanvas的中文意思L('I am a pony!')apple
.tgoogle商铺hen(url => {
console.log(url)
})
.catch(eappreciaterr => {
console.error(err)
})
// With async/await
const generateQR =google地球 async text => {
try {
console.log(await QRCode.toDataURL(text))
} cappstoreatch (err) {
console.errorgiti是什么牌子(err)canvas动画
}
}

在微信小程序中运用

yingye 教师giti是什么牌子供应的方案 weapp.qrcodgit指令e.git指令js

weapp.qrcodappeare.js

先在 wxml 文件中,创建制造的 canvas,并giti定义canvas的中文意思好 width, height, canvasId 。google空间

直接引进 js 文件,运用 drawQrcode() 制造二维码。

因为现在微信小程序已全面支撑 npm ,能够html文件怎么翻开挑选直接设备,giti是什么牌子记得要构建 npm 包

npm install weapp-qrcode --save

google谷歌查找主页柢运用

imporCanvast drawQrcode fHTMLromhtml简略网页代码 'weapp-qrcode'
drawgitlabQrcohtml简略网页代码de({
widcanvas渠道thtmcanvas软件l标canvaspsuh: 200,
height: 200,
canvasId: 'myhtmlQrcode',
thtmgiti轮胎lext: 'https://gigoogle商铺thub.com/yingye'
})

快速生成条码canvas下载和二维码的方案

wxbarcode

设备

$ npm install wxbarcode

运用方法

import wxbarcodhtml个人网页无缺代码e from 'wxbarcode'
wxbarcode.barcode('barcode', '1234567html5890123456789'Canvas,giti 680, 200)giti轮胎;
wxbargoogle空间code.app设备下载qrcode('qrcode', '1234567890123456789', 420, 420);

条形码

函数名:barcode

函数原型:barcode(id, code, width, height)

参数:

  • id: wxml文件中的 Canvas ID
  • code: 用于生成条形码的字符串
  • width: 生成的条形码宽度,单html位 rpGooglex
  • hecanvas动画ight: 生成的条形码高度,单位 rpx

二维码

函数名:qrcode

函数原型:qrcode(id, code, width, height)

参数:

  • id: wxml文件中的 Canvas ID
  • code: 用于生成二维码的字符串
  • width: 生成的二维码宽度google翻译,单位 rpx
  • heightCanvas: 生成google浏览器的二维码html网页制造gitgiti轮胎ee高度,单位 rpx

总结

调研了许多处理方案,node-qhtml标签属性大全rcodgoogle商铺e 处理了我大部分问题。小程序社区也有许giti是什么牌子多的方案,也能够在跨端结构中运用,因为不是出产级项目也没有去调研检验html个人网页无缺代码。但根柢应该足以满意需求。

❤️ 感谢我们

假定你觉得这篇内容对你挺有有协助的canvas下载话:

点赞支撑下吧,让更多的人也能看到这篇内容(保藏不点赞,都是耍流氓 -_-)html5

注重大众号咸鱼爱前端,我们git教程一同学习一同跋涉。

觉得不错的话,也能够阅览其他文章(感谢朋友的煽动与支撑):

三个网站玩转 Grid 布局

Nodejs 完结守时爬虫

React-Query 让你的情况办理更典雅

前端页面布局学习神器

面试必备知识点之深浅仿制

SPA 前端路由原理与完结