[英]How to get mask to be 100% width of a masked image in fabric.js?
我正在尝试在fabric.js中使用Mask过滤器。 这是我得到的结果: 错误渲染的蒙版
第一件事是蒙版被像素化并且没有正确渲染(透明线)。 第二件事:如何使被遮罩的图像始终保持其宽度的100%,以调整遮罩图像的大小?
这是我的代码:
var canvas = new fabric.Canvas(canvasElement.get(0), {
clipTo: function (ctx) {
ctx.rect(relPos.x, relPos.y, dimensions.x, dimensions.y);
},
controlsAboveOverlay: true
});
fabric.Image.fromURL(el.options.source, function (img) {
img.set({
angle: el.options.degree
});
img.set({
left: el.options.x,
top: el.options.y,
width: el.options.width,
height: el.options.height
});
fabric.Image.fromURL('http://localhost/mask.jpg', function (maskImg) {
var mask = new fabric.Image.filters.Mask({mask: maskImg});
img.filters.push(mask);
img.applyFilters( function() {
canvas.add(img);
canvas.renderAll();
});
});
});
我已将其添加到代码笔中: https : //codepen.io/anon/pen/VWrbyx 。
好的,在我的环境中的最新版本的Fabric上似乎工作正常。 遮罩是那里图像的100%。 尽管我为什么在我的环境的旧版本(1.4.6)上而不是Codepen的干净测试版本上有这些蒙版渲染问题,这真的很奇怪。 如果有人有想法,请发表评论。
有一个可以解决的类似的讨论在这里 。 解决方法似乎是先在与遮罩图像相同大小的另一个画布上绘制遮罩。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.