vue base64图片转网络url
src支持base64图片,正常base64图片可以直接复制到图片src,也可以将其转为url
// data
url: 'xxxxxxxx' // base64编码
imgurl: '' // 图片路径
// methods
base64imgtofile (dataurl, filename = 'file') {
      const arr = dataurl.split(',')
      const mime = arr[0].match(/:(.*?);/)[1]
      const suffix = mime.split('/')[1]
      const bstr = atob(arr[1])
      let n = bstr.length
      const u8arr = new uint8array(n)
      while (n--) {
        u8arr[n] = bstr.charcodeat(n)
      }
      return new file([u8arr], `${filename}.${suffix}`, {
        type: mime
      })
    },打印得到file文件,再转为png图片

const img = 'data:image/png;base64,' + img this.file = this.base64imgtofile(img) // 得到file对象 this.imgurl = window.webkiturl.createobjecturl(file) || window.url.createobjecturl(file) // imgurl图片网络路径
base64转url、url转base64
   // url转base64
            dataurltoblob(dataurl) {
                return new promise((resolve, reject) => {
                let 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);
                }
                resolve(new blob([u8arr], {type:mime}));
                })
            },
 
const images = await promise.all([
                    this.dataurltoblob(this.imageurl),
                    this.dataurltoblob(this.imageurl2),
                ])
// base64转url
            dataurltobloburl(dataurl) {
                return new promise((resolve, reject) => {
                    let 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);
                    }
                    let blob = new blob([u8arr], {type:mime});
                    let url = url.createobjecturl(blob);
                    resolve(url);
                });
            },
               let url1 = await this.dataurltobloburl(this.imageurl);
               let url2 = await this.dataurltobloburl(this.imageurl2);
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
            
                                            
                                            
                                            
                                            
                                            
                                            
发表评论