javascript - Fabricjs 将 Canvas 的一部分复制到另一个 Canvas

标签 javascript html html5-canvas fabricjs

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

最佳答案

如果您想从 Canvas 上复制一个矩形区域以便将其导出为图像,您可以使用以下方法:

      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'));

关于javascript - Fabricjs 将 Canvas 的一部分复制到另一个 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14737677/

相关文章:

javascript - 当没有第二个图像可用时,jQuery 悬停不起作用

javascript - 如何在事件发生后使用 React 滚动到某个元素?

javascript - Canvas 粒子、碰撞和性能

javascript - 加速在 HTML5 canvas 元素上绘制多个点

javascript - 在 Canvas 上创建弹跳框动画

javascript - jquery如何运行一个函数?

javascript - 从 javascript 自调用函数中检索类

javascript - 输入文件在 ReactJS 上的悬停效果

html - 保持固定高度的纵横比

javascript - 如何使用 chrome 扩展程序影响网站