当前位置: 首页 > 工具软件 > T3.js > 使用案例 >

Three.js 获取快照 + Canvas2Image

施旭东
2023-12-01

直接将canvas变成图片会一片空白/全黑,原因是:

canvas获取的是t3的渲染界面: const canvas = this.renderer.domElement;

而变成图片之前t3的渲染界面是清空的状态

为什么是清空的状态呢?

因为这个图是渲染器一帧一帧渲染出来的,渲染完成后渲染器自然也就成空的了。

解决办法:
获取截图之前再渲染一下场景

  shot(){
    const canvas = this.renderer.domElement;
    this.renderer.clear();
    this.renderer.render(this.scene, this.camera);

    const width = canvas.width;
    const height = canvas.height;

    Canvas2Image.saveAsPNG(canvas, width, height);
  }

Canvas2Image的安装与使用:
https://github.com/hongru/canvas2image

Canvas2Image的作者忘记写导出了,自己从他的lib里找到想要的部分,再自己优化下就可以拿来用了。

 类似资料: