我正在尝试使用Fabric创建T恤编辑器。我将衬衫设置为画布上的背景图像。现在,我试图在T恤的中间找到一个区域,将其用作剪贴蒙版。我只希望该区域内的对象可见。
这是我的代码:http://jsfiddle.net/mtb2p3Lx/4/
var canvas = new fabric.Canvas('c');
// set background
fabric.Image.fromURL('https://qstomizr.s3.amazonaws.com/11102-9LDAQLKA1585254870.5083.jpg', (img) => {
canvas.setBackgroundImage(img, null, {
originX: 'center',
originY: 'center',
top: canvas.getCenter().top,
left: canvas.getCenter().left,
stroke: 'black',
strokeWidth: 1,
});
canvas.renderAll();
});
// set masking area
var area = new fabric.Rect({
originX: 'center',
originY: 'center',
top: this.canvas.getCenter().top,
left: this.canvas.getCenter().left + 10,
width: 250,
height: 300,
selectable: false,
fill: 'transparent',
stroke: 'black',
strokeWidth: 2,
});
canvas.add(area)
// set example rect
var rect = new fabric.Rect({
originX: 'center',
originY: 'center',
top: this.canvas.getCenter().top + 50,
left: this.canvas.getCenter().left + 150,
height: 100,
width: 100,
fill: 'pink',
});
canvas.add(rect)
[我尝试将剪切路径添加到area
矩形,也尝试过使用globalCompositeOperation
,但是如果不牺牲背景图像,我将无法工作。
是否有办法使透明区域变成画布上其他对象的剪贴蒙版?
您可以在此站点上看到https://printio.ru/tees/new_v2。为了实现背景图像,使用了没有img
的setBackgroundImage
标签。我在这里为你做一个例子