<template> <div> <!--創建一個cavas 用來存放圖片--> <canvas id="cavasimg" width="607" height="367" ></canvas> <!-- 聲明一個按鈕 用來觸發下載圖片到本地--> <input type="button" id="btnsavaImg" value="保存圖片到本地" @click="Download()"/> </div> </template> <script> export default { data () { return { } }, methods:{ Download(){ //cavas 保存圖片到本地 js 實現 //------------------------------------------------------------------------ //1.確定圖片的類型 獲取到的圖片格式 data:image/Png;base64,...... var type ='jpg';//你想要什么圖片格式 就選什么吧 var d=document.getElementById("cavasimg"); var imgdata=d.toDataURL(type); //2.0 將mime-type改為image/octet-stream,強制讓瀏覽器下載 var fixtype=function(type){ type=type.toLocaleLowerCase().replace(/jpg/i,'jpeg'); var r=type.match(/png|jpeg|bmp|gif/)[0]; return 'image/'+r; }; imgdata=imgdata.replace(fixtype(type),'image/octet-stream'); //3.0 將圖片保存到本地 var savaFile=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); }; var filename=''+new Date().getSeconds()+'.'+type; //我想用當前秒是可以解決重名的問題了 不行你就換成毫秒 savaFile(imgdata,filename); } }, mounted () { $loading.hide() //canvas 繪制圖片 支持手機端 // var canvas = document.getElementById('cavasimg'); // var ctx = canvas.getContext('2d');
// ctx.fillRect(0, 0, canvas.width, canvas.height); // ctx.fillStyle = "red"; // ctx.font = 'italic bold 30px Helvetica '; // ctx.fillText('楷體', 50, 50);
// canvas 插入圖片 手機端點擊沒反應 //獲取canvas元素 var cvs = document.getElementById("cavasimg"); //創建image對象 var imgObj = new Image(); imgObj.src = "http://10.20.11.202:7099/file/readImage?basePath=/sys/201803/8c7d8835de18452695fad2f328c0680efile.jpg"; imgObj.setAttribute("crossOrigin",'Anonymous') //待圖片加載完后,將其顯示在canvas上 imgObj.onload = function(){ var ctx = cvs.getContext('2d'); ctx.drawImage(this, 0, 0);//this即是imgObj,保持圖片的原始大小:470*480 //ctx.drawImage(this, 0, 0,1024,768);//改變圖片的大小到1024*768 } } }