我正在尝试使用fabricJS在画布上添加剪辑路径区域(矩形对象)。目前我将覆盖图像设置到画布上,除此之外,我还添加了剪贴路径区域来放置对象。我成功地将对象放置在剪辑路径中,但问题是我将其放置在剪辑路径中的任何图像都具有不透明度(意味着对象也具有透明度),我知道是因为我将透明图像设置为始终位于其他对象之上的覆盖。
我的查询是
- 我可以单独设置剪辑路径区域以忽略覆盖吗?或者至少设置像剪辑路径这样的首选项是第一优先级和下一个覆盖?
- 目前clippath没有边框,我不知道clippath在哪里?那么有没有办法在剪贴路径区域设置边框?
这是我下面的代码
HTML
<canvas id="ex8" width="300" height="400"></canvas>
JS
(function () {
var canvas = new fabric.Canvas('ex8');
canvas.controlsAboveOverlay = true;
var clipPath = new fabric.Rect({ width: 100, height: 100, fill: 'red', top: 100, left: 100 });
canvas.setOverlayImage(
'https://i.ibb.co/88QkSMC/crew-front.png',
canvas.renderAll.bind(canvas),
{}
);
var group = new fabric.Group([
new fabric.Rect({ width: 100, height: 100, fill: 'red', globalCompositeOperation: 'xor' }),
new fabric.Rect({ width: 100, height: 100, fill: 'blue', top: 100 }),
new fabric.Rect({ width: 100, height: 100, fill: 'green', left: 100, top: 100 }),
]);
canvas.clipPath = clipPath;
canvas.add(group);
})();
感谢你的帮助 !!!