在Fabric JS中缩放对象时保持SVG strokeWidth

问题描述

我正在将FabricJS中的URL的SVG加载到画布对象上,如下所示,它工作得很好:

fabric.loadSVGFromURL('https://upload.wikimedia.org/wikipedia/commons/4/42/Flowchart_arrow.svg',function(objects,options) {
            var obj = fabric.util.groupSVGElements(objects,options);
            obj.set({
                left: 0,top: 0,width: width,height: height,});
            canvas.add(obj);
        },null,{ crossOrigin: 'Anonymous' });

但是,当对象缩放时,笔划宽度明显增加。

有没有一种方法可以保持已加载到画布上的SVG图像的strokeWidth?还是我需要使用fabric.path来实现我的目标?

我只需要SVG保持其strokeWidth / thickness,同时能够缩放画布对象。这样可能吗?

我尝试了以下方法,但没有成功:

canvas.on({
 'object:scaling': function() {
     var o = obj.target;
     if (!o.strokeWidthUnscaled && o.strokeWidth) {
        o.strokeWidthUnscaled = o.strokeWidth;
     }
     if (o.strokeWidthUnscaled) {
        o.strokeWidth = o.strokeWidthUnscaled / o.scaleX;
  }
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)