export async function imgDecode(srcCode) {
return new Promise(async (resolve, reject) => {
// #ifdef H5
let xmlHttp = new XMLHttpRequest()
// xmlHttp.open('GET', srcCode + '_.jpg', true)
xmlHttp.open('GET', srcCode, true)
xmlHttp.responseType = 'blob'
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState !== 4 || xmlHttp.status !== 200) {
return
}
let reader = new FileReader()
reader.readAsArrayBuffer(xmlHttp.response)
reader.onload = function() {
let result = new Blob([this.result.slice(4)], { type: 'image/jpeg' })
let reader = new FileReader()
reader.readAsDataURL(result)
reader.onload = function(e) {
resolve({ src: e.target.result })
}
}
}
xmlHttp.send(null)
// #endif
// #ifndef H5
console.log("此代码不会在H5平台显示");
let res = await uni.request({
method: "GET",
url: srcCode,
responseType: "arraybuffer",
})
console.log("非h5端 截取前ArrayBuffer", res[1].data);
console.log("非h5端 截取后ArrayBuffer", res[1].data.slice(4));
// 得到base64编码url
if (res[1] && res[1].data) {
const base64Src = 'data:image/jpeg;base64,' + uni.arrayBufferToBase64(res[1].data.slice(4));
console.log("截取后转成base64", base64Src);
resolve({ src: base64Src })
} else {
reject('获取base64 src 失败')
}
// #endif
})
}
imgDecode('https://jscdn.szzyx.xyz/upload/vod/20230812-16/2ff9abbc737f4a20c11ee22553593f3d.woff3').then(res => {
console.log("res000", res);
this.base64img = res.src;
})