5

好的,我知道 canvas.toDataUrl() 会生成 png 格式的图像。但是,当我尝试从http://threejs.org/examples/#webgl_lines_sphere获取图像时。我所看到的只是 chrome 上的黑色图像。要复制这些步骤 -

1)打开开发控制台并选择画布元素。2) canvas = $0 3) context = canvas.getContext('webgl', {preserveDrawingBuffer: true}) 4) img = canvas.toDataUrl() 5)document.write('<img src="'+img+'"/>')

图像是空白的。但是,我在链接http://threejs.org/examples/#canvas_geometry_cube尝试使用不同的画布。请按照以下步骤进行复制。

1)打开开发控制台并选择画布元素。2) canvas = $0 3) context = canvas.getContext('2d', {preserveDrawingBuffer: true}) 4) img = canvas.toDataUrl() 5)document.write('<img src="'+img+'"/>')

这给出了预期的结果。为什么有区别,如何避免这种情况也检索第一张图像?

4

2 回答 2

8

我也得到了一个纯黑色的图像。

我之前的代码是:

this.renderer = new THREE.WebGLRenderer({premultipliedAlpha: false});

我已将参数更改THREE.WebGLRenderer为:

this.renderer = new THREE.WebGLRenderer({preserveDrawingBuffer: true});

我正在拍摄快照。

希望能帮助到你。

于 2018-07-10T07:17:09.120 回答
0

这是因为第一个示例(参见源代码第 103 行)确实使用了THREE.WebGLRenderer创建者,而第二个示例(参见源代码第 92 行)使用了THREE.CanvasRenderer.

一些注意事项:

于 2016-01-18T09:02:41.407 回答