最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中base64、url和blob之間相互轉換的3種方式(詳細代碼)

 更新時間:2023年10月10日 08:31:13   作者:世界太過浮夸  
這篇文章主要給大家介紹了關于js中base64、url和blob之間相互轉換的3種方式,Blob和File是用來表示二進制數(shù)據(jù)的,而Base64則是一種編碼方式,用來把二進制數(shù)據(jù)編碼成可讀的字符串,需要的朋友可以參考下

url轉換為base64

 function urlToBase64(url) {
        return new Promise((resolve, reject) => {
            let image = new Image();
            image.onload = function () {
                let canvas = document.createElement('canvas');
                canvas.width = this.naturalWidth;
                canvas.height = this.naturalHeight;
                // 將圖片插入畫布并開始繪制
                canvas.getContext('2d').drawImage(image, 0, 0);
                // result
                let result = canvas.toDataURL('image/png')
                resolve(result);
            };
            // CORS 策略,會存在跨域問題https://stackoverflow.com/questions/20424279/canvas-todataurl-securityerror
            image.setAttribute("crossOrigin", 'Anonymous');
            image.src = url;
            // 圖片加載失敗的錯誤處理
            image.onerror = () => {
                reject(new Error('urlToBase64 error'));
            };
        })
    }

調用:

 urlToBase64(url).then(res=> {
      // 轉化后的base64圖片地址
 	  console.log('base64', res)
});

blob 轉 url

function blobToBase64(blob) {
  return new Promise((resolve, reject) => {
    const fileReader = new FileReader();
    fileReader.onload = (e) => {
      resolve(e.target.result);
    };
    // readAsDataURL
    fileReader.readAsDataURL(blob);
    fileReader.onerror = () => {
      reject(new Error('blobToBase64 error'));
    };
  });
}

調用:

blobToBase64(blob).then(res => {
  // 轉化后的base64
  console.log('base64', res)
})

base64 轉 Blob

function function base64toBlob(dataurl) {
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new Blob([u8arr], { type: mime });
}

blob轉 File

 function blobToFile(blob, name) {
        return new File([blob], name + '.png', { type: blob.type });
    }

總結 

到此這篇關于js中base64、url和blob之間相互轉換的3種方式的文章就介紹到這了,更多相關js base64、url和blob相互轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

合作市| 那曲县| 景洪市| 讷河市| 晴隆县| 武汉市| 莱州市| 会昌县| 塔河县| 保德县| 朝阳区| 名山县| 汨罗市| 五大连池市| 讷河市| 青川县| 太仓市| 巴塘县| 循化| 北碚区| 梨树县| 改则县| 霞浦县| 兴仁县| 佳木斯市| 海晏县| 淮南市| 万源市| 渭源县| 常州市| 金寨县| 广元市| 合川市| 京山县| 象州县| 通城县| 福贡县| 荔波县| 赫章县| 宜都市| 法库县|