FabricJS将图像添加到组会导致奇怪的控制行为
FabricJS adding Image to Group causes odd control behavior
我正试图将加载的图像添加到结构组对象中。一切看起来都很好,但选择控件是不可选择的,我也无法拖动对象。左上角的控件可以工作,点击后一切都很好。
这里有一个jsfiddle演示了该行为。
var canvas = new fabric.Canvas('canvas', {
width: 200,
height: 200
});
var group = new fabric.Group();
canvas.add(group);
fabric.Image.fromURL('https://placehold.it/100x100', function(img) {
group.addWithUpdate(img);
canvas.setActiveObject(group);
canvas.renderAll();
});
这是bug还是我做错了什么?
由于某些性能原因,fabricjs在向组中添加对象后不会自动调用setCoords(如果添加了许多对象,则可以只调用一次setCoords)。
所以在执行addWithUpdate之后,只需调用group.setCourds();
var canvas = new fabric.Canvas('canvas', {
width: 200,
height: 200
});
var group = new fabric.Group();
canvas.add(group);
fabric.Image.fromURL('https://placehold.it/100x100', function(img) {
group.addWithUpdate(img);
group.setCoords();
canvas.setActiveObject(group);
canvas.renderAll();
});
我看到这篇文章是因为我在正确定位图像方面遇到了问题。我最终发现,在将其添加到组之前,只需使用document.createElement
创建一个图像元素并设置src
,然后将其与所需的所有选项一起输入到fabric.Image
中(而不是使用fabric.Image.fromURL
,这太令人头疼了,无法使用)会更容易。
var oImg = document.createElement("img");
oImg.setAttribute('src', 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Cog_font_awesome.svg/512px-Cog_font_awesome.svg.png');
var i = new fabric.Image(oImg, {
originX: 'center',
originY: 'center',
left: left+35,
top: top-30,
scaleX:.05,
scaleY:.05,
});
g = new fabric.Group([r, t, i]); // where r and t are other fabric objects
相关文章:
- 使用jQuery控制来自图像的音频
- 有没有办法在使用 html 输出标签时控制图像的大小
- 如何在“控制缩放”下的“打开图层”上添加一些图像
- 使用左右控制循环图像
- Google Map JS API-加载地图分幅,但所有图像(标记、缩放控制等)都不加载;t负载2分钟
- FabricJS将图像添加到组会导致奇怪的控制行为
- 输入类型='文件'如何控制图像质量
- 具有速度控制的图像动画
- 控制首先加载哪个图像
- 如何控制图像's大小
- 我应该在什么时候用CSS和Javascript控制背景图像的变化
- 可点击图片阵列图像输出大小-can't控制各个输出图片的尺寸
- 如何在用户另存为时控制base64图像
- 我如何控制图像预加载请求
- 改变默认谷歌地图Api'的默认缩放控制图像
- 当我不能修改一些源代码时,我如何控制图像加载?
- 根据以前访问过的页面历史来控制图像
- 上传到ASP.Net时控制图像文件大小
- 如何控制图像的缩放
- 控制图像的宽度和高度时,上传图像