Fabricjs将画布的一部分复制到另一个画布

red*_*lue 3 javascript html5 html5-canvas fabricjs

我正在尝试将fabricjs画布的一部分复制到另一个画布.我不确定织物是否有适合这样做的方法(如果是这样的话请告诉我)并经过一些搜索后我决定不使用布料.但是画布已经使用fabricjs创建了. 新的fabric.Canvas().现在当我尝试使用context.drawImage()复制这个画布的一部分时,我得到一个TypeError.我尝试用不使用面料创建的img或画布替换画布,这样可行.所以,我猜我可能不得不使用面料画布对象.

cou*_*lix 5

如果要从画布复制矩形区域以将其导出为图像,可以使用以下内容:

      canvas.deactivateAll();
      canvas.renderAll();
      var ctx = canvas.getContext("2d");
      var myImageData = ctx.getImageData(box.x, box.y, box.w, box.h);
      var buffer = document.createElement('canvas');
      var bufferCtx = buffer.getContext("2d");
      buffer.width = box.w;
      buffer.height = box.h;
      bufferCtx.putImageData(myImageData, 0, 0);
      window.open(buffer.toDataURL('image/png'));
Run Code Online (Sandbox Code Playgroud)