前端JS base64與圖片互轉

今天在用apicloud寫APP時,遇到一個base64轉圖片並直接展示在當前頁面的問題,因爲之前使用過 “trans”模塊,知道該模塊可以將圖片與base64格式之間來回轉換

所以想都沒想就使用了trans模塊,但是到後來我發現我拿不到轉換的圖片路徑,trans模塊保存是使用 fs:// ,或者可以選擇將圖片保存到系統相冊,

恕我才疏學淺不知道怎麼去獲取 fs:// 路徑,而且再去讓用戶手動去相冊選擇圖片未免太麻煩,

然後我就反應過來了,img標籤不是可以直接識別base64字符並轉換爲圖片嗎?......

 

 

 

誒,我開發還是過於依賴框架、模塊、插件等,很多原生的東西都要記不得了

以後開發可一定得記住咯,順便附上JS互轉base64和圖片

 

 

js將圖片轉化爲base64

var img = "imgurl";//imgurl 就是你的圖片路徑  

function getBase64Image(img) {  
     var canvas = document.createElement("canvas");  
     canvas.width = img.width;  
     canvas.height = img.height;  
     var ctx = canvas.getContext("2d");  
     ctx.drawImage(img, 0, 0, img.width, img.height);  
     var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();  
     var dataURL = canvas.toDataURL("image/"+ext);  
     return dataURL;  
}  

var image = new Image();  
image.src = img;  
image.onload = function(){  
  var base64 = getBase64Image(image);  
  console.log(base64);  
}  

  

js將base64轉化爲圖片格式

js直接設置img的src屬性爲 圖片的base64數據即可

document.getElementById('img').setAttribute( 'src', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0 DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' );
如下:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0 DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==">

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章