我正在使用Pixi.js并尝试将动画帧保存到图像中. canvas.toDataUrl应该可以工作,但我得到的只是一个黑色矩形.查看实时示例here
我用来提取图像数据和设置图像的代码是:
var canvas = $('canvas')[0];
var context = canvas.getContext('2d');
$('button').click(function() {
var data = renderer.view.toDataURL("image/png", 1);
//tried var data = canvas.toDataURL();
$('img').attr('src', data);
})
解决方法:
[注意]
虽然这个答案是公认的,但请在下面的@gman中阅读the one,它确实包含了一种更好的方法.
您的问题是您正在使用webGL上下文,然后您需要将webGL上下文的preserveDrawingBuffer属性设置为true,以便能够调用toDataURL()方法.
或者,您可以使用CanvasRenderer
Class强制pixi使用2D上下文