javascript-fabric.loadSVGFromString结果失真
作者:互联网
我用inkscape编辑了SVG:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2816" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs id="defs2818"></defs>
<metadata id="metadata2821">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" stroke-linejoin="miter" stroke="#ce3762" stroke-linecap="butt">
<path id="path2828" style="stroke-dasharray:none;" d="M40,3,35,3,20,18,10,18s-5,5,0,10h10l15,15h5v-40z" transform="translate(-5,0)" stroke-miterlimit="4" stroke-width="0.5" fill="#42101e"/>
<path id="path2830" d="m37,13s2,7.5359,0,15" transform="translate(0,2)" stroke-width="1px" fill="none"/>
<path id="path2834" d="m40,11s3,10,0,19" transform="translate(0,2)" stroke-width="1px" fill="none"/>
<path id="path2836" d="m43,6s6,14,0,29" transform="translate(0,2)" stroke-width="1px" fill="none"/>
</g>
</svg>
它看起来应该像这样:
当我用fabricjs导入它时:
// volumeOnPrint is the string pasted before
fabric.loadSVGFromString(volumeOnPrint, function(objects, options) {
var widget = new fabric.PathGroup(objects, options);
// root is my fabricjs canvas
root.add(widget);
});
它得到:
(背景不是问题,这是我的画布之一)
解决方法:
原来这是Fabric中的错误.
我只是fixed it and pushed新版本(0.9.21).
通常,用Inkscape创建的SVG文件比用Illustrator创建的文件更难解析.但是我们越来越好了:)
越来越多的visual test suite已添加到您的形状中,以避免将来发生回归(请告诉我是否可以).小心/加载/解析所有形状可能要花一些时间.
标签:javascript,html5-canvas,fabricjs 来源: https://codeday.me/bug/20191012/1902402.html