HTML 保存圖片到本地


具體方法有兩種  一種是 利用canvas的 toDataUrl  和Html5 里面的 <a>標簽里面的 Download 屬性

雖然 Download 的兼容性不怎么樣  但是在文章后面給大家說說怎么兼容IE

  如果你用cnavas 畫了一張很是完美的照片  你想着把它保存下來  

 你點了圖片 右擊 =》圖片另存為 (還可以改名字)

以上操作的確是 沒毛病對吧 但是 總感覺有點不爽是吧  要的就是一單擊就可以下載

HTML 部分:

    <!--創建一個cavas  用來存放圖片-->
        <canvas  id="cavasimg" width="607" height="367"  ></canvas> 
        
<!--        聲明一個按鈕  用來觸發下載圖片到本地-->
        <input type="button" id="btnsavaImg" value="保存圖片到本地" onclick="Download()"/>        

 

function Download(){
        //cavas 保存圖片到本地  js 實現
        //------------------------------------------------------------------------
        //1.確定圖片的類型  獲取到的圖片格式 data:image/Png;base64,...... 
        var type ='png';//你想要什么圖片格式 就選什么吧
        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);
        };

插入效果吧:

接下來就要用 <a>標簽了

<a  href="img/0dd7912397dda144b4b30b41b3b7d0a20df4868e.jpg" download="lumia.jpg">
            <img src="img/0dd7912397dda144b4b30b41b3b7d0a20df4868e.jpg" />
        </a>

這就不用寫js方法咯 但是會有不兼容的問題  當前好像只支持chrome  和 firefox對於IE 該怎么辦呢? 

那就需要 在你頁面的 <head></head> 部分引入這個js文件了 

<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>

務必請放在 head里面 因為要讓瀏覽器在解析頭部后再去解析<body> 那時候就能讓IE 支持該屬性了。

 


免責聲明!

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



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