SVG 优化器

优化并压缩 SVG 文件以减小体积。
安全
处理在你的设备上完成,因此输入/输出不会发送到任何地方。

说明

分析 SVG 结构,在不影响渲染的范围内清理无用标记。通过展开样式、优化尺寸声明、精简属性以及简化数值和路径数据,在保持视觉质量的同时有效减小文件大小。

优化内容

样式在可行范围内,将 <style> 中的 CSS 展开到各元素的 style 属性中。展开后还可能转换为 fillstroke 等展示属性,并删除已经为空且不再需要的 <style> 元素。
尺寸删除根 <svg> 元素中 style 内的 width / height 声明以及 width / height 属性,同时保留响应式显示所需的 viewBox
属性删除 Figma、Adobe XD、Illustrator 等设计工具添加的无用属性,例如 data-name。如果 idclass 未被引用,或因元素合并、转换(如从 <line> 转为 <path>)而不再需要,也可能被删除。
引用检查 filterclip-pathmask 等引用属性;若引用目标不存在则删除,有效且会影响显示效果的引用会被保留。
数值与路径通过比较不同舍入精度(floatPrecision)下的渲染结果,自动选择视觉差异最小且体积最小的设置。同时简化 <path>d 属性等路径数据,删除无用空格与冗余内容,并使用 multipass 重复优化,以尽可能减小文件大小。
兼容性为避免显示异常,工具会保留 viewBox。SVG 包含 <text> 元素时,也会保留用于控制空格处理的 xml:space;若没有 <text>,则可能删除。对于含动画的 SVG,为避免破坏动画,会限制部分优化。难以内联的复杂 CSS 也可能被保留,以维持原始显示效果。

说明

文件缩减比例和最终输出会因 SVG 的结构及写法而异。对于复杂选择器、媒体查询等难以自动展开或内联的样式,为保证正确渲染,优化器可能会予以保留。

合并或转换元素(例如将 <line> 转为 <path>)时,如果原元素的 idclass 因结构变化而不再需要,可能会被删除。

filterclip-pathmask 等引用属性的目标不存在时(例如失效的 url(#...) 引用),会自动删除这些属性,以保持 SVG 数据一致。

含 CSS 动画或 <animate> 标签的 SVG 也可以优化,但由于动画行为容易被破坏,部分优化会受到限制。如果 SVG 中包含脚本(JS),优化后可能出现非预期行为。

相关工具