Fabric.js 从 toDataURL 中删除对象

Fabric.js remove object from toDataURL

是否有类似于excludeFromExport的内置属性?

感觉是toDatalessObject的功能,但是不知道怎么用

据我所知,没有任何内置方法可以从 toDataURL 中排除某些对象。

但是,这里有一个解决方法,您可以使用它来实现该功能...

let canvas = new fabric.Canvas('c');

let rect = new fabric.Rect({ width: 50, height: 50, top: 75, left: 120, fill: 'black' });
let circle = new fabric.Circle({ radius: 25, top: 75, left: 25, fill: 'red' });
canvas.add(rect);
canvas.add(circle);

function _toDataURL(...objsToRemove) {
   objsToRemove.forEach(e => {
      canvas.remove(e);
   });
   let dataURL = canvas.toDataURL();
   objsToRemove.forEach(e => {
      canvas.add(e);
   });
   return dataURL;
}

let dataURL = _toDataURL(rect);
console.log(dataURL);
canvas {border: 1px solid #ccc}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.11/fabric.min.js"></script>
<canvas id="c" width="200" height="200"></canvas>