首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >优化SVG有哪些选择?

优化SVG有哪些选择?
EN

Stack Overflow用户
提问于 2012-01-26 03:52:05
回答 7查看 28.3K关注 0票数 62

我有多个SVG,其中一些相当大(11MB),它们是使用pdf2svg从PDF创建的。

问题是,SVG太大了,需要很长时间才能打开,而且不必要地复杂。它主要包含文本和一些图像(比如报纸),文本被分成小块的字符,甚至没有单词。

我需要优化它,首先要减少大小,还要减少元素的数量,使它加载得更快。到目前为止,我唯一想到的就是查看一行中的字符,并将它们连接到一个 <tspan>**.**中

这应该会大大减少文本元素的数量,因为它看起来主要是1-5个字母的组。

但我正在寻找更多我可以对SVG做的事情来减小大小。还有一种主要的字体,它用于大约95%的文本,但就目前而言,所有的文本都定义为字形(渲染形状)。

是否可以只嵌入字体,以便将文本呈现为文本,而不是形状?

另外,如果你知道有更好的库来将PDF转换成SVG,我将不胜感激。唯一的要求是SVG输出看起来应该和PDF完全一样。

我还想指出的是,速度并不是很重要。转换需要多长时间并不重要,只要它产生所需的结果即可。

EN

回答 7

Stack Overflow用户

发布于 2012-12-13 23:01:04

SVG-Cleaner似乎工作得很完美:比其他的更快,更好的压缩,在我的测试中健壮,批量文件夹处理,嘿!为我们这些懒惰的人准备的windows安装程序!

我的尝试:原始文件大小:241KB,InkScape删除refs后: 149K,使用工具清理:38KB,清理并压缩:5KB (.sgvz文件扩展名)。

我试着打开最后一个,期待着一个空白的图画...但是我的图片仍然完好无损!

下载here (Windows,Ubuntu,或者源码)

票数 29
EN

Stack Overflow用户

发布于 2012-12-09 23:43:51

我可以推荐,因为我自己在清理SVG文件中不必要的东西时也用过很多次,这是我的爱好之一。

一个示例scour命令行可能对您有很好的帮助(我倾向于从它开始):

scour --enable-viewboxing --create-groups --shorten-ids --enable-id-stripping --enable-comment-stripping --disable-embed-rasters --remove-metadata --strip-xml-prolog -p 9 < old.svg > new.svg

一定要比较新旧版本,以确保它不会破坏任何东西,并尝试降低-p小数精度(如果不给出,则默认为5);在某种程度上,它可能会开始严重扭曲,但小数高一两位应该看起来不错。

如果你想采用一种更手动的方法,在Kilobyte SVG Challenge changesets中聚集了许多行业的诀窍,这意味着这类事情的学习和教学的结合场所。

是的,您可以在SVG文件中嵌入字体,或者链接外部字体,如Mike Bostock的take on the WebPlatform.org logo (non-html-wrapped version here)所示。

当然,如果你对所使用的字体有详细的了解,这比你选择一个任意的pdf并转换它要容易得多;我不知道有什么工具可以从原始pdf嵌入的任何字形创建一个没有名字的字体,而不需要你自己做大部分(或所有)工作。

此外,在Kilobyte SVG Challenge README的工具部分中有越来越多的SVG优化工具。

票数 25
EN

Stack Overflow用户

发布于 2012-02-01 07:03:29

我最近开始编写一个Python程序来优化SVG,您可以在以下位置找到它:https://github.com/petercollingridge/SVG-Optimiser

有一个非常初步的在线版本:http://petercollingridge.appspot.com/

欲了解更多信息,请访问:http://www.petercollingridge.co.uk/blog/svg-optimiser

它还远未完成,可能还存在很多but,但它解决了deals提到的一些问题,例如删除不必要的精度和默认样式属性。如果你知道你在寻找什么,它还可以去掉不必要的属性和命名空间,并将样式转换为CSS,这使得它们更容易被改进。

我真的不明白你说的嵌入字体是什么意思。如果您粘贴SVG的一个示例片段,其中显示了gyphs和多个字符元素,那么我也许能够包含一个组合它们的方法。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9009305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档