gpt4 book ai didi

javascript - Fabricjs:如何将导入的 SVG 图像分解为单独的单独 PathGroup,而不是一个?

转载 作者:行者123 更新时间:2023-11-28 07:55:49 28 4
gpt4 key购买 nike

总的来说,我有一个矩形 SVG 图像,分为两半,我想在单击时添加图像,但是,当我导入 SVG 时,它只创建一个 PathGroup 而不是两个 - 有谁知道我如何实现两个不同的路径组?我相信这是实现我总体目标的第一步。

这是我加载 SVG 的方法:

    fabric.loadSVGFromURL('./img/rect_w_two_halves.svg', function(objects, options){    
loadedObject = fabric.util.groupSVGElements(objects, options);
loadedObject.set({
left:0,
top:0,
scaleY:.50,
scaleX:.50
});
canvas.add(loadedObject);
canvas.renderAll();
});

图像如下:

enter image description here

这是 SVG:

<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="320px"
height="568px" viewBox="0 0 320 568" enable-background="new 0 0 320 568" xml:space="preserve">
<g id="Layer_2">
<line fill="none" stroke="#FFFFFF" stroke-width="15" stroke-miterlimit="10" x1="253.978" y1="284" x2="66.022" y2="284"/>
<path fill="none" stroke="#FFFFFF" stroke-width="15" stroke-miterlimit="10" d="M253.04,448.055
c0,10.338-8.381,18.719-18.719,18.719H85.68c-10.338,0-18.72-8.381-18.72-18.719V119.945c0-10.338,8.382-18.719,18.72-18.719
h148.642c10.338,0,18.719,8.381,18.719,18.719V448.055L253.04,448.055z"/>
</g></svg>

提前致谢,因为我一直被这个问题困扰。

最佳答案

您可以通过将每个元素传递到 canvas.add 方法来添加 SVG 中的对象,而无需分组:

var canvas = new fabric.Canvas('mycanvas');
fabric.loadSVGFromURL(url);

function callback(objects, options) {
canvas.add.apply(canvas, objects);
canvas.renderAll();
}

有一个demo在 Fabric.js 网站上,您可以在“加载 SVG”选项卡的“加载而不分组”按钮中找到该部分

关于javascript - Fabricjs:如何将导入的 SVG 图像分解为单独的单独 PathGroup,而不是一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26101256/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com