4

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

4

1 回答 1

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'));
于 2013-02-12T13:42:40.647 回答