2017-05-30 139 views
0

是否有任何与excludeFromExport类似的内置属性?Fabric.js将对象从toDataURL中移除

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

+0

@ℊααnd我试图将其保存为没有在它的某些物体的像即线对象。 –

回答

0

据我所知,没有任何内置的方法来排除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>

+0

不幸的是,他们有'excludeFromExport',但不是在转换为图像时将其删除的东西。你知道'toDatalessObject'的作用吗? –

+0

'toDatalessObject'返回画布的对象*(不是图像)*表示。 –

+0

啊,好吧。谢谢。 –