html5如何將圖片轉(zhuǎn)換成base64

這篇文章給大家分享的是有關(guān)html5如何將圖片轉(zhuǎn)換成base64的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

成都創(chuàng)新互聯(lián)是一家以成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、營(yíng)銷推廣、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為塔吊租賃等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。

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

為什么要把圖片轉(zhuǎn)換成base64編碼?
將圖片轉(zhuǎn)換成base64代碼可以減少http請(qǐng)求,因?yàn)閳D片可以以字符編碼的形式直接傳遞到客戶端,而文件形式都需要進(jìn)行http請(qǐng)求。但是也會(huì)有一個(gè)小缺點(diǎn),就是圖片編碼化base64的時(shí)候大小會(huì)變大,但是通過(guò)gzip優(yōu)化以后基本差不多。所以在應(yīng)用的過(guò)程當(dāng)中較小的圖片可以直接編碼成base64,較大的圖片則不建議如此使用。

html5如何將圖片轉(zhuǎn)換成base64?
html5如果要將圖片轉(zhuǎn)換成base64需要使用到一個(gè)html5的接口FileReader.readAsDataURL()接口說(shuō)明,這個(gè)接口可以將文件轉(zhuǎn)換成base64編碼格式,并且再以data:URL的形式展現(xiàn)出來(lái)。

示例程序
下面的代碼是示例程序,創(chuàng)建一個(gè)新html文件,然后將代碼復(fù)制粘貼使用支持html5的瀏覽器打開即可查看效果。

<!Doctype html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>html5 image to base64</title>
    </head>
    <body>
        <script type="text/javascript">
        window.onload = function(){ 
        // 抓取上傳圖片,轉(zhuǎn)換代碼結(jié)果,顯示圖片的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("請(qǐng)確保文件為圖像類型"); 
                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代碼

html5如何將圖片轉(zhuǎn)換成base64

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

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

html5如何將圖片轉(zhuǎn)換成base64


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

感謝各位的閱讀!關(guān)于“html5如何將圖片轉(zhuǎn)換成base64”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

文章題目:html5如何將圖片轉(zhuǎn)換成base64
文章網(wǎng)址:http://muchs.cn/article8/ihscop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管自適應(yīng)網(wǎng)站、虛擬主機(jī)網(wǎng)站改版、網(wǎng)站策劃品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管