saveToFile() {
viewer.render();//重新渲染界面
let canvas = viewer.scene.canvas;
let image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream")
let link = document.createElement("a");
let blob = this.dataURLtoBlob(image);
let objurl = URL.createObjectURL(blob);
link.download = "scene.png";
link.href = objurl;
link.click();
}
dataURLtoBlob(dataurl) {
let arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = window.atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
注:在场景出图的实现过程中遇到两个问题:
1、导出图片一片黑
处理办法:viewer.render();//重新渲染界面
2、提示atob()已被弃用
处理办法:window.atob()