使用Fabric.js中的对象创建剪贴蒙版

问题描述 投票:0回答:1

我正在尝试使用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,但是如果不牺牲背景图像,我将无法工作。

是否有办法使透明区域变成画布上其他对象的剪贴蒙版?

fabricjs
1个回答
0
投票

您可以在此站点上看到https://printio.ru/tees/new_v2。为了实现背景图像,使用了没有imgsetBackgroundImage标签。我在这里为你做一个例子

https://jsfiddle.net/RamanNikitsenka/4suna7yo/1/

© www.soinside.com 2019 - 2024. All rights reserved.