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);
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论