我们可以将 putImageData 添加到 fabric canvas 而不是 fromURL
Can we add putImageData to fabric canvas instead of fromURL
fabric.Image.fromURL(hc.toDataURL(), function(img) {
// add image onto canvas
Canvas.add(img);
img.hasControls = false;
img.hasBorders = false;
img.hasControls = false;
img.hasRotatingPoint = false;
img.selectable = false;
});
上面的代码有助于将图像渲染到 canvas 但我想使用类似 putImageData/drawImage 的东西,因为我必须从另一个 canvas 绘制图像。根据实时操作,对超过 5 MB 的图像使用 toDataURL 在性能方面非常糟糕。
我还想在 canvas 的中间渲染图像。
Fabricjs 只是将图像获取到 DataURL 并按原样呈现它。
任何帮助将不胜感激。
fabric.Image()
just like the row ctx.drawImage
接受 canvasElement
作为图像源。
所以你可以这样称呼它
canvas.add(new fabric.Image(yourCanvasToDraw));
如果您希望它位于 canvas 中心:
canvas.add(new fabric.Image(c, {left: canvas.width/2-c.width/2, top: canvas.height/2-c.height/2}));
请注意 ctx.getImageData
+ctx.putImageData
至少和 ctx.toDataURL
一样慢,两者都比 ctx.drawImage
慢得多
fabric.Image.fromURL(hc.toDataURL(), function(img) {
// add image onto canvas
Canvas.add(img);
img.hasControls = false;
img.hasBorders = false;
img.hasControls = false;
img.hasRotatingPoint = false;
img.selectable = false;
});
上面的代码有助于将图像渲染到 canvas 但我想使用类似 putImageData/drawImage 的东西,因为我必须从另一个 canvas 绘制图像。根据实时操作,对超过 5 MB 的图像使用 toDataURL 在性能方面非常糟糕。
我还想在 canvas 的中间渲染图像。 Fabricjs 只是将图像获取到 DataURL 并按原样呈现它。
任何帮助将不胜感激。
fabric.Image()
just like the row ctx.drawImage
接受 canvasElement
作为图像源。
所以你可以这样称呼它
canvas.add(new fabric.Image(yourCanvasToDraw));
如果您希望它位于 canvas 中心:
canvas.add(new fabric.Image(c, {left: canvas.width/2-c.width/2, top: canvas.height/2-c.height/2}));
请注意 ctx.getImageData
+ctx.putImageData
至少和 ctx.toDataURL
一样慢,两者都比 ctx.drawImage