| <template> |
| <div> |
| |
| <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 |
| } |
| |
| } |
| } |