我正在使用Fabricjs在画布上加载图像并将其转换为base64:
fabric.Image.fromURL(url, (img) => {
var imgurl = img.toDataURL({});
fabric.Image.fromURL(imgurl,(urlimg)=>{
this.canvas.add(urlimg);
this.canvas.setActiveObject(urlimg);
});
});
然后,我允许用户对其进行缩放并设置对象的比例:
this.activeObject.set({ scaleX: 0.5 });
this.activeObject.set({ scaleY: 0.5 });
然后我将画布转换为SVG,图像的比例和位置为:
matrix(0.5 0 0 0.5 337 210) >
我想要的比例是1,并且位置也相应更改了,
matrix(1 0 0 1 390 270)
因为当我使用SVG在SVG中添加动画时,图像会自动调整为原始比例,并在动画后返回到设置比例,这不是我期望的行为。 有什么方法可以将缩放比例“应用”到fabric.Image上并丢失有关原始尺寸的信息吗?