当前位置: 代码网 > it编程>编程语言>Javascript > vue中的base64图片转网络URL方式

vue中的base64图片转网络URL方式

2024年10月28日 Javascript 我要评论
vue base64图片转网络urlsrc支持base64图片,正常base64图片可以直接复制到图片src,也可以将其转为url// dataurl: 'xxxxxxxx' // base64编码i

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);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com