Html Fabric.js-保存动画快照

Html Fabric.js-保存动画快照,html,animation,canvas,fabricjs,capture,Html,Animation,Canvas,Fabricjs,Capture,我正在使用fabric.js创建一些动画 现在我想创建一个gif的动画,所以想“画布捕捉”在20帧每秒。即每秒20次PNG。然后我可以使用convert将PNG转换为gif 我正在使用node.js在服务器上运行动画 问题:动画正在运行时,如何保存PNG?它不需要实时写入或处理,因为它只在服务器端运行。您可以像这样使用它 var blob_array = new FormData(), png_index = 0; function canv2blob(canv) { return new

我正在使用fabric.js创建一些动画

现在我想创建一个gif的动画,所以想“画布捕捉”在20帧每秒。即每秒20次PNG。然后我可以使用convert将PNG转换为gif

我正在使用node.js在服务器上运行动画


问题:动画正在运行时,如何保存PNG?它不需要实时写入或处理,因为它只在服务器端运行。

您可以像这样使用它

var blob_array = new FormData(), png_index = 0;

function canv2blob(canv) {
  return new Promise(function(resolve, reject) {
    canv.getElement().toBlob(function(blob) {
      resolve(blob);
    },'image/png',0.8); //0.8 is quality. keep it as you like
  });
}

function process_blob(canv){
 canv2blob(canv).then(function(blob){
     blob_array.append(png_index,blob);
 });
}
然后在每个fabric动画的
onChange
事件中,调用函数创建一个
FormData
对象,其中包含可以发布到服务器的png blob

onChange: function(){ 
          canvas.renderAll.bind(canvas);
          process_blob(canvas);
          png_index++;
      },