欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端base64與圖片相互轉(zhuǎn)換(附代碼)

 更新時(shí)間:2023年09月13日 09:43:27   作者:MoXinXueWEB  
有時(shí)候會(huì)遇到要把前端發(fā)送過(guò)來(lái)的圖片的文件base64編碼轉(zhuǎn)化成圖片,所以下面這篇文章主要給大家介紹了關(guān)于前端base64與圖片相互轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下

base64轉(zhuǎn)圖片

如下圖:(后端返回的數(shù)據(jù))

<img :src="baseImg" >
let baseImg = ""
this.baseImg ="data:image/png;base64," + data?.flowChar

base64轉(zhuǎn)換圖片文件

base64ImgtoFile = (dataurl, filename = 'file') => {
  let arr = dataurl.split(',')
  let mime = arr[0].match(/:(.*?);/)[1]
  let suffix = mime.split('/')[1]
  let bstr = atob(arr[1])
  let n = bstr.length
  let u8arr = new Uint8Array(n)
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new File([u8arr], `${filename}.${suffix}`, {
    type: mime
  })
},
// base64編碼的圖片
baseImg = 'data:image/png;base64,R0lGODlhqASoAfcAAAAAAAAAMwAAZgAAmQAAzAAA/wArAAArMwArZgArmQArzAAr/wBVAABVMwBVZgBVmQBVzABV/wCAAACAMwCAZgCAmQCAzACA/wCqAACqMwCqZgCqmQCqzACq/wDVAADVMwDVZgDVmQDVzADV/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMrADMrMzMrZjMrmTMrzDMr/zNVADNVMzNVZjNVmTNVzDNV/zOAADOAMzOAZjOAmTOAzDOA/zOqADOqMzOqZjOqmTOqzDOq/zPVADPVMzPVZjPVmTPVzDPV/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YrAGYrM2YrZmYrmWYrzGYr/2ZVAGZVM2ZVZmZVmWZVzGZV/2aAAGaAM2aAZmaAmWaAzGaA/2aqAGaqM2aqZmaqmWaqzGaq/2bVAGbVM2bVZmbVmWbVzGbV/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5krAJkrM5krZpkrmZkrzJkr/5lVAJlVM5lVZplVmZlVzJlV/5mAAJmAM5mAZpmAmZmAzJmA/5mqAJmqM5mqZpmqmZmqzJmq/5nVAJnVM5nVZpnVmZnVzJnV/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wrAMwrM8wrZswrmcwrzMwr/8xVAMxVM8xVZsxVmcxVzMxV/8yAAMyAM8yAZsyAmcyAzMyA/8yqAMyqM8yqZsyqmcyqzMyq/8zVAMzVM8zVZszVmczVzMzV/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8rAP8rM/8rZv8rmf8rzP8r//9VAP9VM/9VZv9Vmf9VzP9V//+AAP+AM/+AZv+Amf+AzP+A//+qAP+qM/+qZv+qmf+qzP+q///VAP/VM//VZv/Vmf/VzP/VAP//M///Zv//mf//zP///wAAAAAAAAAAAAAAACH5BAEAAPwALAAAAACoBKgBAAitAPcJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNIa97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169izOGvfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCaoNeCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w0LdZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeSSTDbp5JNQRinllFRWaeWVWClmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145iep55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZgjZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxirrrLQg1mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNusg7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rke6Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/HAAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2wc8cUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLBq37PLLMMcs88w012zzzTjnrPPOPPfs889ABxkt9NBEF2300UgnrfTSTDft9NNQRy311FRXGW311VhnrfXWXHft9ddghy322GSXbfbZaKcYrfbabLft9ttwxy333HTXbffdeOet9958Fvft99+ABy744IQXbvjhiCeu+OKMN+4X+OOQRy755JRXbvnlmGeu+eacd+7556AWhy766KSXbvrpqKeu+uqst+7667DHLhb77LTXbvvtuOeu++689+7778AHL/zwFMQXb/zxyCev/PLMN+/889BHL/30FNRXb/312Gev/fbcd+/99+CHL/74FOSXb/756Kev/vrst+/++/DHL//8FPTXb//9+Oev//789+///wAMoAAHFUjAAhrwgAhMoAIXyMAGOvCBEIygBBQnSMEKWvCCGMygBjfIwQ568IMgDBWhCEdIwhKa8IQoTKEKV8jCFrrwhTATjKEMZ0jDGtrwhjjMoQ53yMMe+hXwh0AMohCHSMQiGvGISEyiEpfIxCYTOvGJUIyiFKdIxSpa8YpYzKIWtxLIxS568YtgDKMYx0jGMprxjGgTTKMa18jGNrrxjXCMoxznSMc62hLxjnjMox73yMc++vGPgAykIAcSSchCGvKQiEykIhfJyEY68pGQEoykJCdJyUpa8pKYzKQmN8nJThJ68pOgDKUoR0nKUprylKhMpSoSV8nKVrrylbCMpSxnScta2vKWELjMpS53ycte+vKXwAymMIcSScxiGvOYyEymMpfJzGY685nQEIymNKdJzWpa85rYzKY2t8kRzW5685vgDKc4x0nOcprznOgJTKc618lOQQYEADs=';
//轉(zhuǎn)換圖片文件
const imgFile = base64ImgtoFile(baseImg); 
console.log("imgFile",imgFile);

圖片(url)轉(zhuǎn)換base64

getBase64 = (url, callback) => {
  let Img = new Image(),
    dataURL = '';
  Img.src = url + '?v=' + Math.random();
  Img.setAttribute('crossOrigin', 'Anonymous');
  Img.onload = function() {
    let canvas = document.createElement('canvas'),
      width = Img.width,
      height = Img.height;
    canvas.width = width;
    canvas.height = height;
    canvas.getContext('2d').drawImage(Img, 0, 0, width, height);
    dataURL = canvas.toDataURL('image/jpeg', 1); //可選取多種模式
    return callback ? callback(dataURL) : null; //回掉函數(shù)獲取Base64編碼
  };
}
// 調(diào)用
let imgUrl=‘https://www.baidu.com/img/bd_logo1.png'
 this.getBase64(imgUrl, dataURL => {
 console.log(dataURL:就是base64了)
});

便捷的圖片轉(zhuǎn)化base64

利用 Chrome 瀏覽器,在 chrome 下新建一個(gè)窗口,然后把要轉(zhuǎn)化的圖片直接拖入瀏覽器,打開(kāi)控制臺(tái),點(diǎn) Source,如下圖所示,點(diǎn)擊圖片,右側(cè)就會(huì)顯示該圖片的 base64 編碼

總結(jié) 

到此這篇關(guān)于前端base64與圖片相互轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)base64與圖片相互轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡(jiǎn)單方法示例

    JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡(jiǎn)單方法示例

    這篇文章主要給大家介紹了關(guān)于JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • TypeScript判斷兩個(gè)數(shù)組的內(nèi)容是否相等的實(shí)現(xiàn)

    TypeScript判斷兩個(gè)數(shù)組的內(nèi)容是否相等的實(shí)現(xiàn)

    本文主要介紹了TypeScript?判斷兩個(gè)數(shù)組的內(nèi)容是否相等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • thinkjs 文件上傳功能實(shí)例代碼

    thinkjs 文件上傳功能實(shí)例代碼

    ThinkJS 是一款面向未來(lái)開(kāi)發(fā)的 Node.js 框架,整合了大量的項(xiàng)目最佳實(shí)踐,讓企業(yè)級(jí)開(kāi)發(fā)變得如此簡(jiǎn)單、高效。接下來(lái)通過(guò)本文給大家分享thinkjs 文件上傳功能,需要的朋友參考下吧
    2017-11-11
  • 基于JavaScript實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)頁(yè)面

    基于JavaScript實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)頁(yè)面

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • vue 組件銷毀并重置的實(shí)現(xiàn)

    vue 組件銷毀并重置的實(shí)現(xiàn)

    這篇文章主要介紹了vue 組件銷毀并重置的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • JS實(shí)現(xiàn)輸入框提示文字點(diǎn)擊時(shí)消失效果

    JS實(shí)現(xiàn)輸入框提示文字點(diǎn)擊時(shí)消失效果

    這篇文章主要介紹了JS實(shí)現(xiàn)輸入框提示文字點(diǎn)擊時(shí)消失效果,涉及javascript針對(duì)鼠標(biāo)的響應(yīng)及事件監(jiān)聽(tīng)機(jī)制相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • JavaScript使用箭頭函數(shù)實(shí)現(xiàn)優(yōu)化代碼

    JavaScript使用箭頭函數(shù)實(shí)現(xiàn)優(yōu)化代碼

    在JavaScript的編程世界里,我們時(shí)常被普通函數(shù)的冗長(zhǎng)寫(xiě)法所困擾,每次都需要寫(xiě)function關(guān)鍵字,有時(shí)候還要明確地寫(xiě)return語(yǔ)句,下面我們就來(lái)看看如何利用箭頭函數(shù)優(yōu)化這些繁瑣的代碼吧
    2023-11-11
  • Node.js API詳解之 zlib模塊用法分析

    Node.js API詳解之 zlib模塊用法分析

    這篇文章主要介紹了Node.js API詳解之 zlib模塊用法,結(jié)合實(shí)例形式分析了Node.js API中zlib模塊基本功能、函數(shù)使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • JS中雙擊和單擊事件沖突的解決方法

    JS中雙擊和單擊事件沖突的解決方法

    這篇文章主要為大家詳細(xì)介紹了JS中雙擊和單擊事件沖突的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 微信小程序?qū)崿F(xiàn)換膚功能

    微信小程序?qū)崿F(xiàn)換膚功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)換膚功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論