码迷,mamicode.com
首页 > Web开发 > 详细

原生js 保存图片到本地

时间:2018-03-20 12:49:34      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:保存图片   图片格式   attr   ret   lte   font   ...   UNC   canvas   

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

 

原生js 保存图片到本地

标签:保存图片   图片格式   attr   ret   lte   font   ...   UNC   canvas   

原文地址:https://www.cnblogs.com/web-fusheng/p/8608430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!