将base64编码的图片转换为arraybuffer
https://www.cnblogs.com/zyulike/p/10573324.html
Base64toArrayBuffer(base64Data) {
var base64 = base64Data.replace(/^data:image\/\w+;base64,/, "");
const rawData = window.atob(base64);
const outputArray = new Uint8Array(rawData.length);
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}
return outputArray;
},
音频mp3转arraybuffer
mp3toArrayBuffer() {
axios({
method: 'get',
url: this.imageListAll[this.templateId - 1].template_audio,
responseType: 'arraybuffer'
}).then((res) => {
console.log('mp3的arraybuffer', res.data) //这个是arraybuffer
this.audio = res.data
this.imgArrayBufferData.push({
name: 'bg',
data: this.audio
})
})
},
bolb图片转arraybuffer
async render_video() {
// console.log('渲染,存图')
// 渲染相关:
if (this.mixer) {
this.mixer.update(1.0 / 24.0) // // 更新混合器相关的时间
}
this.renderer.render(this.scene, this.camera) //执行渲染操作
// 获取渲染在屏幕上的图片
var reader = new FileReader()
var img = this.renderer.domElement.toBlob(function(imgBlob) {
reader.readAsArrayBuffer(imgBlob)
// console.log('img', imgBlob)
})
// console.log('img', img)
return new Promise(function (resolve, reject) {
reader.onload = e => {
resolve(e.target.result); // 将arraybuffer类型的图片返回
}
})
},
// 调用render_video()函数,获取arraybuffer类型的图片
var imgArraybuffer = await this.render_video()