vue中點擊按鈕自動截圖並下載圖片


點擊一個按鈕,截取對應區域的界面,才對截取的界面進行裁切並下載

下載    html2canvas    npm install html2canvas  --save

引用 :

import html2canvas from 'html2canvas'


components: {
html2canvas
},

將你需要截取的部分用 id 包裹起來
<div id="capture" ref="imageTofile">......</div>

獲取該區域
html2canvas(document.querySelector("#capture")).then(canvas => {
const imgUrl = canvas.toDataURL("png"); // 獲取生成的圖片的url
console.log(imgUrl)
})


這樣就可以得到你需要需要截取的屏幕區域了





如果你需要再次對這樣圖片進行裁切

const img = new Image();
img.src = canvas.toDataURL("png");
img.setAttribute('crossOrigin', 'anonymous');
var canvas = document.createElement("canvas");//1. 獲取畫布

const num = this.dataLength * 48 + 148;
console.log(canvas)
canvas.width = 530;//這個設置不能丟,否者會成為canvas默認的300*150的大小
canvas.height = 500;//這個設置不能丟,否者會成為canvas默認的300*150的大小
var ctx = canvas.getContext("2d");//2. 獲取畫布上下文
img.onload=function() {
var w = img.width
var h = img.height
ctx.drawImage(img, 0, 0, w, h, 0, 0, w, h)
var dataURL = canvas.toDataURL("image/png");
console.log('裁切后',dataURL)
saveFile(dataURL,'images.jpg');// 下載圖片

}




下載圖片
var saveFile = function(data, filename){
var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href = data;
save_link.download = filename;

var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
save_link.dispatchEvent(event);
}






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM