使用未分组的 Fabric JS 加载 SVG [英] Loading SVG using Fabric JS ungrouped

查看:69
本文介绍了使用未分组的 Fabric JS 加载 SVG的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能告诉我如何使用未分组的fabric js加载SVG文件.使用以下代码加载 SVG 文件,但它显示为单个对象.

Can anybody tell me how can I load an SVG file using fabric js ungrouped. With the following code the SVG file is loading but it is appeared as a single object.

<html>
<head>
    <script src="fabric.min.js"></script>
    <script src="jquery.min.js"></script>
    <script>
        $(function (){

            var canvas = this.__canvas = new fabric.Canvas('c');
            fabric.Object.prototype.transparentCorners = true;
            fabric.loadSVGFromURL("xxx.svg", function (objects, options) {
                var group = fabric.util.groupSVGElements(objects, options);
                canvas.add(group);
                canvas.renderAll();
            });
        });
    </script>
</head>
<body>
<canvas id="c" width="800px" height="600px"></canvas>
</body>
</html>

PS:我尝试将对象一个一个(使用循环)添加到画布,但没有成功.我也试过这个:将 SVG 从文件加载到画布并取消组合

PS: I tried adding the objects one-by-one (using a loop) to the canvas but it was not worked. I also tried this: Load SVG from file to canvas and ungroup it

推荐答案

这是我为当前项目所做的工作,我正在加载未分组的 svg 文件.

This is what I did for a current project I am working on to load a svg file ungrouped.

var canvas = new fabric.Canvas('myCanvas');

fabric.loadSVGFromURL('svgfile.svg', function (objects) {
     canvas.add.apply(canvas, objects);
     canvas.renderAll();
});

现在你可以像这样选择一个对象.

Now you can do thing like this to select a object.

canvas.on('object:selected', function (e) {
      var activeObject = e.target;
      activeObject.setFill('purple');
});

这篇关于使用未分组的 Fabric JS 加载 SVG的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆