Inkscape 文件大小的巨大差异

Key*_*ran 5 inkscape svg

当使用 Inkscape 创建许多具有共同元素的图片时,我倾向于根据需要多次复制我创建的第一个 SVG 文件,然后编辑副本。如果我跨项目重复使用文件,可能会导致一个文件被复制和修改数十到数百个文件。

我最近意识到最新副本的大小在 29 到 60 MB 之间,这显着降低了我的计算机速度。我的图片非常简单,通常不会超过 1 MB。

作为一项实验,我将一个最新文件的全部内容复制到一个新的 Inkscape 文件中。我确信我已经完全复制了文件的内容(我只有一层并且我使用了“全选”选项)。新文件的大小为 102.2 KB。这表明每个文件大约 30 MB 的数据与我无关。

这种尺寸差异的原因可能是什么?有没有办法减少文件的大小而不必将内容复制到新文件中?

我在 Debian Unstable 上使用 Inkscape 0.48.4。

感谢您提供的任何意见!

Wrz*_*mft 4

听起来 Inkscape 在您工作时积累了一些元数据,这些元数据不会因为错误或因为您以意外的方式或比预期更频繁地使用某些方法而被删除。您可以通过查看原始 SVG 文件(在常规文本编辑器或 Inkscape\xe2\x80\x99s XML 编辑器中)并尝试理解内容来尝试找出导致问题的原因。

\n\n

另外,如果您过度使用某些操作,这可以很好地猜测是什么扩大了您的文件。特别是,您应该小心任何使用外部文件的内容。

\n\n

一般来说,我知道从 SVG 文件中删除虚假信息的三种方法:

\n\n
    \n
  • 使用 Inkscape\xe2\x80\x99s真空定义。这会删除一些信息,Inkscape 猜测您可能想再次使用这些信息,例如自定义渐变。
  • \n
  • 将 SVG 文件另存为Plain SVG而不是Inkscape SVG。这使得某些对象(例如对象连接器)转换为更原始的对象类型,因为它们不包含在 SVG 标准中(另请参阅此处)。
  • \n
  • 编写一个脚本(例如,Sed)来清除您想要删除的任何信息。由于 SVG 是基于 XML 的,因此这并不像听起来那么乏味。
  • \n
\n