gpt4 book ai didi

javascript - Fabric js 剪辑对象到背景图像

转载 作者:行者123 更新时间:2023-11-29 09:52:04 25 4
gpt4 key购买 nike

我正在处理 fabric js,我遇到了一个问题,我必须将用户添加的对象(文本、图像、svg 等)剪辑到 Canvas 中的背景图像集。背景图像可以是 png 或 svg(具有多个路径)。背景图像为非均匀形状,如树叶、衬衫等。

这怎么可能呢?

最佳答案

var canvas = new fabric.Canvas('canvas');
fabric.Image.fromURL('https://upload.wikimedia.org/wikipedia/commons/a/a2/Litchi_chinensis_leaf.png',
function(img){
img.scale(0.3);
canvas.setBackgroundImage(img);
canvas.renderAll();
}
);

var rect = new fabric.Rect({
width:80, height:100, fill:'red',
globalCompositeOperation: 'source-atop',
top: 100
});
canvas.add(rect);

var circle = new fabric.Circle({
radius:80, height:100, fill:'blue',
globalCompositeOperation: 'source-atop'
});
canvas.add(circle);
circle.center().setCoords();
<script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas id='canvas' width="500" height="400" style="border:#000 1px solid;"></canvas>

此代码段向您展示了可行的方法。不容易用“图像”剪辑。您可以按照我向您展示的那样使用 globalCompositeOperation。

如您所见,矩形和圆形仅在背景上可见,在外部不可见。

如果您想使用“source-atop”以外的其他值,您可以获得不同的效果。使用“source-in”,背景将是透明的,并将服务于“裁剪”区域的唯一目的

关于javascript - Fabric js 剪辑对象到背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33459355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com