精品国产免费观看久久久_久久天天躁狠狠躁夜夜爽_无码人妻少妇久久中文字幕_狠狠做深爱婷婷久久综合一区

互聯(lián)網(wǎng)知識

精準(zhǔn)傳達(dá) ? 價(jià)值共享

洞悉互聯(lián)網(wǎng)前沿資訊,探尋網(wǎng)站營銷規(guī)律

如何將圖片轉(zhuǎn)換base64格式?data:image/png;base64又是什么?

作者:狐靈科技 | 2020-02-10 10:00 |點(diǎn)擊:

一、我們在看代碼時(shí)經(jīng)常在img或css背景圖片中看到: 
src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOus 
bgAAAAeFBMVEUAwAD///+U5ZTc9twOww7G8MYwzDCH4==”
 
src或 url() 中有一大串編碼。它把一些 8-bit 數(shù)據(jù)翻譯成標(biāo)準(zhǔn) ASCII 字符,網(wǎng)上有很多免費(fèi)的base64 編碼和解碼的工具, 后面跟的一串代碼就相當(dāng)于鏈接地址。
 
二、目前,Data URL scheme 支持的類型:
 
data:,文本數(shù)據(jù)
data:text/plain,文本數(shù)據(jù)
data:text/html,HTML代碼
data:text/html;base64,base64編碼的HTML代碼
data:text/css,CSS代碼
data:text/css;base64,base64編碼的CSS代碼
data:text/JavaScript,Javascript代碼
data:text/javascript;base64,base64編碼的Javascript代碼
data:image/gif;base64,base64編碼的gif圖片數(shù)據(jù)
data:image/png;base64,base64編碼的png圖片數(shù)據(jù)
data:image/jpeg;base64,base64編碼的jpeg圖片數(shù)據(jù)
data:image/x-icon;base64,base64編碼的icon圖片數(shù)據(jù)
 
三、js將圖片轉(zhuǎn)化為base64(2種方法)
 
利用canvas 將圖片轉(zhuǎn)化為base64 編碼格式
var canvas = document.createElement("canvas");
var ctx = canvas.getContext('2d'),
   img = new Image;
   img.src="./vheider.jpg";
 //  img.setAttribute('crossOrigin', 'anonymous')  // 圖片跨域時(shí)有用
   img.onload = function(){
       canvas.height = img.height;
       canvas.width = img.width;
       ctx.drawImage(img,0,0);
       dataURL =canvas.toDataURL("image/jpeg");
 
        $('#img').attr('src', dataURL);
        console.log(canvas.toDataURL("image/jpeg"))
 
  };
 
注意: 這里要在服務(wù)端打開,不然瀏覽器可能會報(bào) index.html:41 Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. 錯(cuò)誤
 
2 . 利用 html5 的 FileReader 將圖片轉(zhuǎn)化base64格式 
FileReader 是H5提供的一個(gè)處理文件的API, 
① 判斷瀏覽器是否支持FileReader
 
if(window.FileReader){
    //處理文件
}else{
   return "瀏覽器不支持FileRedaer"
}
 
② FileReader 接口有四個(gè)方法:
 
readAsBinaryString (file) 將文件讀取為二進(jìn)制碼 
readAsDataURL (file) 將文件讀取為 DataURL 
readAsText (file,encoding) 將文件讀取為文本(第二個(gè)參數(shù)是編碼格式,一般默認(rèn)是UTF-8) 
about 中斷讀取
 
③ FileReader還提供給了一些事件:
 
onabort 中斷時(shí)觸發(fā)
onerror 出錯(cuò)時(shí)觸發(fā)
onload 文件讀取成功完成時(shí)觸發(fā)
onloadend 讀取完成觸發(fā),無論成功或失敗
onloadstart 讀取開始時(shí)觸發(fā)
onprogress 讀取中
注意:重點(diǎn)內(nèi)容 
FileReader 讀取后的文件不會返回給FileReader 本身, 而是存儲在了 result 中
 
HTML
 
<input type="file" id="file"  multiple="multiple">
<div id="imgDiv"></div>       
 
var result = document.getElementById("result");  
var file = document.getElementById("file");
file.change=function(){
    var file = file.files[0]
    var reader=new FileReader();  
 
    reader.readAsBinaryString(file);  
    reader.οnlοad=function (e){  
        imgDiv.innerHTML='<img src="'+this.result+'" alt=""/>'  
        console.log(this) // 打印出轉(zhuǎn)換后的 file 文件對象
    }  
}
 
如沒特殊注明,文章均為狐靈科技原創(chuàng),轉(zhuǎn)載請注明?? "如何將圖片轉(zhuǎn)換base64格式?data:image/png;base64又是什么?
多一份免費(fèi)策劃方案,總有益處。

請直接添加技術(shù)總監(jiān)微信聯(lián)系咨詢

網(wǎng)站設(shè)計(jì) 品牌營銷

多一份參考,總有益處

聯(lián)系狐靈科技,免費(fèi)獲得專屬《策劃方案》及報(bào)價(jià)

咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

業(yè)務(wù)熱線:15082661954 / 大客戶專線:15523356218