在Fabric.js中加载SVG文件而不进行分组

时间:2015-08-04 13:01:56

标签: svg fabricjs

我在Fabric.js中加载某些SVG文件时遇到问题而没有对其元素进行分组。

显示了有关如何使用和不使用分组在画布上显示文件的屏幕截图。使用过的SVG文件是http://fabricjs.com/test/svg_import使用的Fabric.js的SVG测试集合的一部分:

使用分组:

With grouping

没有分组:

Without grouping

这两个屏幕截图都与使用Fabric.js' kitchensink时的结果相对应。但是,在编写自己的程序时,我获得了相同的结果。

我已尝试过其他文件,无论是否执行分组,都会显示它们没有问题。因此,我认为在非分组版本上针对此文件观察到的扭曲是由于某些SVG元素(转换或组,可能是?)而不是由库的SVG解析器很好地处理。

在某些条件下是否可以避免此问题?如果是这样,应该避免使用哪种SVG元素来防止文件出现此问题?

1 个答案:

答案 0 :(得分:0)

这是一个众所周知的"缺少的功能"在fabric.js中

https://github.com/kangax/fabric.js/issues/1520

库没有使用" transformMatrix"处理非常好的对象。物业集。

" transformMatrix"属性来自解析元素和父元素的transform属性。

通常,对象被分组在一个pathGroup对象中,该对象能够处理transforMatrix并提供正确的渲染,其下行效果是对象无法单独移动或旋转/缩放。

有关此功能(我)的工作正在进行中,但尚未完成。 你可以在这里下载并试用我的分支: https://github.com/asturur/fabric.js/tree/experimentalCBox

尚不完美,但将在未来的面料版本中加入以解决此问题。