您當(dāng)前位置:圖趣網(wǎng)(Tuquu) >> 網(wǎng)頁設(shè)計教程 >> 移動前端 >> 瀏覽設(shè)計教程

html5將圖片轉(zhuǎn)換成base64的實(shí)例代碼

base64編碼介紹
base64是一種網(wǎng)絡(luò)上常用的8bit字節(jié)代碼的編碼體例,base64可以用于http環(huán)境下傳遞較長的標(biāo)識信息,同時可以放在url當(dāng)中使用,由于base64不懼可讀性,所以具有肯定的加密功能。

為什么要把圖片轉(zhuǎn)換成base64編碼?
將圖片轉(zhuǎn)換成base64代碼可以削減http請求,由于圖片可以以字符編碼的情勢直接傳遞到客戶端,而文件情勢都必要進(jìn)行http請求。但是也會有一個小瑕玷,就是圖片編碼化base64的時候大小會變大,但是通過gzip優(yōu)化以后基本差不多。所以在應(yīng)用的過程當(dāng)中較小的圖片可以直接編碼成base64,較大的圖片則不建議如此使用。

html5如何將圖片轉(zhuǎn)換成base64?
html5假如要將圖片轉(zhuǎn)換成base64必要使用到一個html5的接口FileReader.readAsDataURL()接口說明,這個接口可以將文件轉(zhuǎn)換成base64編碼格式,并且再以data:URL的情勢顯現(xiàn)出來。

示例程序
下面的代碼是示例程序,創(chuàng)建一個新html文件,然后將代碼復(fù)制粘貼使用支撐html5的欣賞器打開即可查看結(jié)果。

復(fù)制代碼

代碼如下:


<!Doctype html>
<html>
   <head>
       <meta charset="utf-8" />
       <title>html5 image to base64</title>
   </head>
   <body>
       <script type="text/&#106avascript">
       window.onload = function(){
       // 抓取上傳圖片,轉(zhuǎn)換代碼效果,表現(xiàn)圖片的dom
       var img_upload=document.getElementById("img_upload");
       var base64_code=document.getElementById("base64_code");
       var img_area=document.getElementById("img_area");
       // 添加功能出發(fā)監(jiān)聽事件
       img_upload.addEventListener('change',readFile,false);}
       function readFile(){
           var file=this.files[0];
           if(!/image\/\w+/.test(file.type)){
               alert("請確保文件為圖像類型");
               return false;
           }
           var reader=new FileReader();
           reader.readAsDataURL(file);
           reader.onload=function(){
               base64_code.innerHTML = this.result;
               img_area.innerHTML = '<div>圖片img標(biāo)簽展示:</div><img src="'+this.result+'" alt=""/>';
           }
       }
       </script>
       <input type="file" id="img_upload"/>
       <textarea id="base64_code" rows="30" cols="360"></textarea>
       <p id="img_area"></p>
   </body>
</html>

html5圖片轉(zhuǎn)換base64代碼

程序的設(shè)計思路
1.創(chuàng)建三個html標(biāo)簽,input用來上傳圖片,textarea用來表現(xiàn)base64代碼,由于base64代碼內(nèi)容許多所以使用textarea標(biāo)簽,p標(biāo)簽用來表現(xiàn)圖片。
2.使用js調(diào)用html5的FileReader.readAsDataURL()的API,聲明三個變量用于控制圖片上傳,base64代碼表現(xiàn)以及圖片的表現(xiàn)。
3.img_upload.addEventListener('change',readFile,false);添加一個監(jiān)聽事件,假如上傳文件發(fā)生轉(zhuǎn)變就實(shí)行readFile函數(shù)。
4.readFile函數(shù)的內(nèi)容就是調(diào)用接口,將圖片轉(zhuǎn)換成base64再輸出。
5.在實(shí)行轉(zhuǎn)換和輸出之前先判斷一下上傳文件是不是圖片。

代碼解析及細(xì)致
1.var file=this.files[0];這里是抓取到上傳的對象。
2.this.result這個result是FileReader.readAsDataURL()接口當(dāng)中轉(zhuǎn)換完圖片輸出的base64效果存放在result當(dāng)中。在代碼當(dāng)中添加console.log(reader);查看一下FileReader對象就可以看到。(reader是我本身起的對象的名稱)


我使用html5將圖片轉(zhuǎn)換成base64代碼的目的重要是想將圖片寫入到欣賞器本地的數(shù)據(jù)當(dāng)中來使用,上傳的時候,再嘗試恢復(fù)出來上傳圖片。目的是為了削減本地欣賞器應(yīng)用和服務(wù)器的數(shù)據(jù)通訊。

總結(jié)
以上就是這篇文章的悉數(shù)內(nèi)容,盼望能對大家的學(xué)習(xí)或者工作帶來肯定的幫助,假如有疑問大家可以留言交流。

[教程作者:ppmoon]
免責(zé)聲明:本站文章系圖趣網(wǎng)整理發(fā)布,如需轉(zhuǎn)載,請注明出處,素材資料僅供個人學(xué)習(xí)與參考,請勿用于商業(yè)用途!
本文地址:http://irelandcustomcontracting.com/tutorial/wd3334.html
HTML5+CSS3實(shí)現(xiàn)機(jī)器貓
div寬度設(shè)置width100%后再設(shè)置padding或margin超出父元素的解決辦法
圖趣網(wǎng)微信
建議反饋
×