Fabric.js从toDataURL中删除对象

时间:2017-05-30 02:34:11

标签: javascript fabricjs

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

我觉得它是toDatalessObject功能,但我不确定如何使用它。

1 个答案:

答案 0 :(得分:1)

据我所知,没有任何内置方法可以从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>