Vue海报二维码组合图片生成和下载-qrcodejs2-html2canvas

Posted JackieDYH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue海报二维码组合图片生成和下载-qrcodejs2-html2canvas相关的知识,希望对你有一定的参考价值。

项目核心完整代码-下载

演示

安装

npm install qrcodejs2 --save
npm install html2canvas --save

核心代码-具体页面结构请看完整代码

//项目中使用 - 需要的地方直接引入使用即可
import QRCode from "qrcodejs2";
import html2canvas from "html2canvas";

//二维码生成
/**
 * @description 生成二维码
 * @param  number qWidth  宽度
 * @param  number qHeight  高度
 * @param  string qText  二维码内容(跳转连接)
 * @param  string qRender 渲染方式(有两种方式 table和canvas,默认是canvas)
 */
qrcode(qWidth, qHeight, qText, qRender) 
  // 清空二维码
  this.$refs.qrCodeDiv.innerHTML = "";
  new QRCode(this.$refs.qrCodeDiv, 
	width: qWidth,
	height: qHeight,
	text: qText,
	render: qRender,
	colorDark: "#000000",
	colorLight: "#ffffff",
	correctLevel: QRCode.CorrectLevel.L,
  );
,

// 生成海报
cancel() 
  const dialog = this.$refs.dialog;
  this.createQrCodePic();
  window.pageYOffset = 0;
  document.documentElement.scrollTop = 0;
  document.body.scrollTop = 0;
  html2canvas(this.$refs.dialog, 
	useCORS: true, //设置为true,避免图片产生跨域
	logging: true,
	allowTaint: false,
	width: dialog.offsetWidth,
	height: dialog.offsetHeight,
	scale: window.devicePixelRatio || 1,
	backgroundColor: null,
  ).then((canvas) => 
	let dataURL = canvas.toDataURL("image/png");
	console.log("dataURL", dataURL);
	this.htmlUrl = dataURL;
  );
,

// 下载图片
downloadBtn() 
  var link = document.createElement("a");
  link.href = this.htmlUrl;
  console.log(link.href);
  link.download = "poster-download.png";
  setTimeout(() => 
	link.click();
  , 1000);
,

以上是关于Vue海报二维码组合图片生成和下载-qrcodejs2-html2canvas的主要内容,如果未能解决你的问题,请参考以下文章

vue使用qrcodejs2生成二维码且底部带文字描述,支持下载(日常记录)

生成二维码并以图片格式下载-qrcodejs2

vue+Qrcode实现动态生成二维码(图片格式,点击下载可保存本地)

VUE 生成二维码(qrcodejs)

vue将地址转成二维码,与图片合成海报

vue中生成条形码(jsbarcode)二维码(qrcodejs2)