目标是使原始 svg 尽可能轻。
假设我们拿一个现成的 svg 图标,向上或向下改变它的大小。
问题是画布的大小,图标的大小,是否影响权重。也就是坐标数?
之前和之后,什么都没有动过。只是更改了 viewBox 和对象的大小以适合画布......
以及如何减轻重量?我使用 Inkscape 编辑器
目标是使原始 svg 尽可能轻。
假设我们拿一个现成的 svg 图标,向上或向下改变它的大小。
问题是画布的大小,图标的大小,是否影响权重。也就是坐标数?
之前和之后,什么都没有动过。只是更改了 viewBox 和对象的大小以适合画布......
以及如何减轻重量?我使用 Inkscape 编辑器
SVG 画布的大小,无论是否
width="32"height="32"对width="32000"``height="32000"文件重量有很大影响,都会有几个字节的差异,具体取决于有效数字的数量。尽管人物和画布的物理尺寸有很大差异。文件权重受 SVG 命令坐标中有效数字位数的影响很大:
path,line,polyline,polygon,rect,circle, 在 Inkscape 中绘制后出现以一个图标文件为例
path小数点后每个坐标都有3-4位有效数字,导致图标文件的权重为13.36k,当然很好。一个简单的图标很多显着降低减少计数的文件优化器的重量。小数部分的有效数字。例如 - 1。
我认为最好的优化器SVGOMG
优化后的文件权重变为:2.89k,即减少了3倍。
这就是使用 Inkscape 减少 SVG 重量的方法。
这个附加帖子不是答案,而是回答@stylok的评论
Jake Archibald的 SVGOMG SVG 优化器是目前数百万开发人员使用的最佳优化器。它消除了 Inkscape 中所有不必要的开销,例如:
并允许您删除多余的小数位,从而显着降低 SVG 的重量。
SVGOMG 不会使 SVG 源对带有 的动画有效或无效
stroke-dashoffset,因为它完全取决于形状的 SVG 轮廓的绘制方式。如果 SVG 形状是用双路径绘制的,那么线条绘制动画将不容易看到,因为路径靠得很近。
只有一种出路——用单轮廓代替双轮廓。
我将展示我在Winter Bash比赛中的回答如何使用动画。正在绘制 svg 假发图标的单个轮廓(线)。还有额外的动画,我没有剪掉。如果需要,我可以删除多余的部分。