Inkscape 文件大小差异巨大

Inkscape 文件大小差异巨大

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

我最近发现最新副本的大小在 29 到 60 MB 之间,这严重拖慢了我的电脑速度。我的图片非常简单,通常不会超过 1 MB。

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

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

我在 Debian Unstable 上使用 Inkscape 0.48.4。

谢谢您提供的任何意见!

答案1

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

此外,如果您过度使用某些操作,这可以很好地解释是什么导致文件变大。特别是,您应该小心使用外部文件。

总的来说,我知道有三种方法可以从 SVG 文件中删除虚假信息:

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

答案2

我认为这可能与有关<image xlink:href=data:image/png;base64...,据我所知,这是图像的编码。我最近一直在处理一个由简单路径和图像组成的文件;图像的编码长度接近 835,000 个字符,而其他所有内容只有额外的 120,000 个字符。

相关内容