如何使用kineticjs或仅使用画布制作透明橡皮擦。
我需要擦除部分图像上方的多边形部分,使多边形的一部分透明,图像应保持不变。
答案 0 :(得分:0)
您需要访问充当"橡皮擦"的上下文globalCompositeOperation="destination-out"
。 KineticJS上下文没有为您提供globalCompositeOperation,因此您必须挖掘以获得真实的"真实的" html canvas上下文:
context.globalCompositeOperation="destination-out"
来"擦除"多边形,让下面的图像透过。这是"擦除"的形状对象的一个例子。到图像:
http://jsfiddle.net/m1erickson/yv9qn/
var myShape = new Kinetic.Shape({
x: 0,
y: 0,
fill:"blue",
drawFunc: function(context) {
var ctx=layer.getContext()._context;
ctx.save();
ctx.globalCompositeOperation="destination-out";
for(var i=0;i<this.cutouts.length;i++){
var cut=this.cutouts[i];
ctx.fillRect(cut.x,cut.y,cut.width,cut.height);
}
ctx.restore();
}
});
myShape.cutouts=[];
layer.add(myShape);
myShape.cutouts.push({x:75,y:75,width:30,height:30});
myShape.cutouts.push({x:225,y:75,width:30,height:30});
myShape.cutouts.push({x:150,y:125,width:30,height:30});