Fabric js将对象剪辑到背景图像
Fabric js clip object to background image
我正在开发fabric js,遇到了一个问题,我必须将用户添加的对象(文本、图像、svg等)剪辑到画布中的背景图像集。背景图像可以是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,如我所示。
正如你所看到的,矩形和圆形只能在背景上看到,而不能在外面看到。
如果你想使用"源顶"以外的其他值,你可以获得不同的效果。在"源在"的情况下,背景将是透明的,并将为"剪切"区域
相关文章:
- 可以在这里为背景图像设置滤镜吗
- 使用 js 将背景图像设置为 HTML
- 如何使用css动画/javascript使具有背景图像的元素出现
- 循环浏览多个身体背景图像
- 背景图像顶部的滚动图像不移动
- 在pdfmake中嵌入背景图像
- 修复选择菜单时的背景图像
- 使用css()设置背景图像;不起作用
- 鼠标悬停时如何居中放大背景图像
- 强制谷歌为javascript背景图像编制索引
- 淡入不带HTML的背景图像
- 具有淡入淡出效果的全背景图像
- 未加载随机背景图像
- 背景图像前显示Javascript警报
- javascript背景图像位置循环
- CSS动画背景图像的过渡越来越暗
- "Ken Burns效应”;悬停背景图像
- 通过ID JavaScript显示随机背景图像
- JavaScript背景图像
- 带有图像和背景图像的ClipTo