SVG 导入器不导入相同大小的 SVG

Posted

技术标签:

【中文标题】SVG 导入器不导入相同大小的 SVG【英文标题】:SVG importer does not import SVG at the same size 【发布时间】:2021-02-27 03:37:16 【问题描述】:

我正在使用来自 unity3d 的 SVG 导入器: https://docs.unity3d.com/Packages/com.unity.vectorgraphics@2.0/manual/index.html

我有一个示例 svg,我正在用作船:

我还在inkscape中创建了一个示例炮塔:

正如您在layer 1 上看到的那样,我复制了部分样本船作为参考,并创建了炮塔样本精灵。然后我导入生成的 SVG(当然,layer 1 不可见),结果如下:

我已将样品炮塔放在船旁边以供参考,您可以看到炮塔非常小。我不明白其中的区别——因为进口商有相同的设置,我想它们的尺寸会一样。

作为参考,这里是生成的 svg 的顶部部分(我认为发布的数据太多了):

sample_ship.svg

   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   
   
   id="svg2"
   version="1.1"
   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
   inkscape:export-filename="/Users/administrator/Documents/Documents/Mark/Spaceshipblue2.png"
   inkscape:export-xdpi="72"
   inkscape:export-ydpi="72"
   sodipodi:docname="sample_spaceShip.svg">

sample_turret.svg

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   
   
   viewBox="0 0 210 297"
   version="1.1"
   id="svg1032"
   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
   sodipodi:docname="sample_turret.svg">

如果svg 标签合适,请告诉我。

【问题讨论】:

【参考方案1】:

您的 SVG 未使用相同的设置导出。

您的船舶文件以像素为单位指定了widthheight,并且没有viewBox。 您的炮塔文件以毫米为单位指定widthheight,并且还有一个viewBox

“我将飞船的一部分复制到一个新文件”这一步可能是出错的地方。

    尝试将炮塔添加到您的飞船文件中。但是给它自己的层。 在导出飞船文件之前隐藏炮塔层。 然后在导出炮塔文件之前隐藏船层。

你应该有兼容的 SVG 文件。

【讨论】:

您好,感谢您的宝贵时间。确实是的。我将两个 svg 文件的文档大小设置为 1920x1080 像素。然后我(通过直接编辑 svg 文件,因为我找不到inkscape 选项)删除了viewbox。现在尺寸合适了。不幸的是 - 它们在 unity3d 中仍然看起来不太好,所以我想我可能需要做更多的阅读......谢谢你的帮助!

以上是关于SVG 导入器不导入相同大小的 SVG的主要内容,如果未能解决你的问题,请参考以下文章

如何动态导入 SVG 并内联渲染

NextJS、Storybook、SVG 和绝对导入路径

如何将 svg 文件导入 Vue 组件?

二十如何导入svg图片

python导入svg图片格式

导入 img 而不是 SVG