ZeroTool Workbench

SVG 压缩优化

在浏览器内用 SVGO 压缩 SVG,可切换插件、对比节省字节、复制或下载结果。不上传,不注册。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册

Plugins

Ready

使用方式

  1. 粘贴 SVG 代码,或切到「上传文件」标签页拖放 .svg 文件。
  2. 勾选需要的插件。默认配置对齐 SVGO 的 preset-default;主面板 8 个 toggle 覆盖最常见的优化决策。
  3. 点击压缩 SVG。优化前 / 优化后会同时显示字节数、节省百分比和实际渲染效果,方便立刻发现视觉回归。
  4. 复制结果把代码贴回项目,或下载 .svg保存清理后的文件。

哪些内容会被去掉

SVGO 会去掉编辑器元数据、注释、隐藏元素、默认属性以及其他不影响渲染的标记,同时重写 path 数据、合并相邻 path、缩短颜色值。常见图标体积一般缩小 40–70%,主要节省来自 convertPathDatamergePathscleanupNumericValues

两个高风险 toggle

去 viewBox去 width/height 默认关闭是有原因的:没有 viewBox 的 SVG 会失去响应式缩放能力,没有 width / height 的 SVG 会从父元素继承尺寸 — 对独立下载的图标来说基本不是你想要的结果。只有在完全掌控嵌入上下文时才打开(比如 sprite sheet 的父级 <use> 已经指定尺寸)。

什么时候压缩

  • 生产构建:vite-plugin-svgo 之类把 SVGO 装进打包流程;本工具用于无 CLI 时快速核对结果。
  • 手写或导出的 SVG:Figma、Illustrator、Sketch 都会留下大量编辑器元数据和无引用的 id 属性,SVGO 能清得很干净。
  • HTML 中内联的 SVG:每一字节都会推迟首屏渲染,越小越好。

按设计单文件

本工具一次优化一份 SVG。批量处理、自定义插件、CI 集成请用 SVGO 命令行 — npm install -g svgo 之后跑 svgo input.svg -o output.svg 就能处理整个目录或 glob。在这里调好 toggle 组合后,把对应的 svgo.config.js 片段从 SVGO 文档里复制到构建里就能复用。

需要进一步转成位图或抽取到 React?把优化后的代码丢给 ZeroTool 的 SVG 转 PNGSVG 转 JSX

FAQ

和 SVGOMG 有什么区别?

底层都是 SVGO。ZeroTool 锁定 SVGO v4,把使用率最高的 8 个插件作为主面板 toggle,并提供中文 / 英语 / 日语 / 韩语原生界面。SVGOMG 只有英文。

SVG 会上传到服务器吗?

不会。SVGO 作为 JS 模块加载到当前标签页,然后在本地内存中处理你粘贴或上传的 SVG。原始输入、优化结果、插件配置都不离开你的设备。

为什么优化后 SVG 显示坏了?

最常见的原因是开了「去 viewBox」选项 — 没有 viewBox 的 SVG 无法响应式缩放。关掉再重新优化即可。「去 width/height」对固定尺寸图标也有类似副作用。

内联 <style> 和 class 会被怎么处理?

默认情况下 SVGO 把 style 内联到元素属性并压缩(inlineStyles + minifyStyles)。如果需要保留 class 供运行时 CSS 覆盖,请到「显示全部 34 插件」面板里把这两个插件关掉。

包含 <script> 的 SVG 能优化吗?

可以。SVGO 不修改 script 内部内容,只去掉注释、调整周围空白。<use href="sprite.svg#id"> 这类外部引用也会保留。