npm install vue-qr --save
npm install qrcodejs2 --save
npm install html2canvas --save
在项目下载依赖
<div>
<div style="display: none" id="my_qrcode" class="qrcode"></div>
<div class="Canvas">
<canvas id="myCanvas" width="100%" height="100vh"></canvas>
</div>
<img :src="dataURL" alt="" class="modalImg" @click="download()" />
</div>
在页面引入
import VueQr from "vue-qr";
import QRCode from "qrcodejs2";
import html2canvas from "html2canvas";
export default {
data() {
return {
my_qrcode: "",
dataURL: "",
};
},
methods: {
makeQRcode() {
let t = this;
t.my_qrcode = new QRCode("my_qrcode", {
width: 196,
height: 196,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L,
text: "http://sino-sources.com/dist5/index.html#/",
});
},
qr() {
let img = new Image();
img.src = this.my_qrcode._oDrawing._elCanvas.toDataURL();
return img;
},
poster() {
let t = this;
let c = document.getElementById("myCanvas");
c.width = 900;
c.height = 1600;
let ctx = c.getContext("2d");
let qr = t.qr();
let img = new Image();
var base64 = "";
img.setAttribute("crossOrigin", "anonymous");
img.crossOrigin = "Anonymous";
img.src =
"xxxxxx.png";
img.setAttribute("crossOrigin", "Anonymous");
img.onload = function () {
ctx.drawImage(img, 0, 0);
ctx.drawImage(qr, 660, 1340);
base64 = c.toDataURL("image/png");
t.dataURL = base64;
};
},
},
mounted() {
this.makeQRcode();
this.poster();
},