原生js 保存圖片到本地


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

 


免責聲明!

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



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