前端工作室SVG 工具切换工具

SVG 工具箱

去掉 SVG 里的编辑器残留,精简数字,然后输出为 React、Vue、React Native、Flutter 或 Android 组件。一切都在当前标签页中完成,文件不会上传到任何地方。

  • 输出: 10 种格式
  • 你的文件: 不会离开当前标签页
  • 典型节省: 节省 40-60% 的体积

你的 SVG

粘贴代码,或将 .svg 文件拖放到输入框中。

更多清理选项

预览

560 B → 272 B,减小 51%

背景
Created with a drawing application
  • 已移除 1 条注释
  • 已移除 3 个编辑器属性

输出

选择格式,然后复制或下载代码。

272 B · Icon.svg
没有上传任何内容,转换在当前标签页中完成。

优化器会移除什么

注释、元数据块、绘图软件留下的带命名空间的属性,以及空分组。数字会按你选择的精度取整,文件缺少 viewBox 时会自动补上。

它有意不做什么

它不会合并路径,不会展平变换,也不会删除被其他内容引用的 id。这些操作虽能节省字节,却可能改变文件的显示效果,而体积更小但渲染不同的图标并不算收益。

关于 Android 输出

VectorDrawable 只能绘制路径,因此矩形、圆形和多边形会先转换为路径。渐变、滤镜和文本没有对应项,工具会提示你而不是悄悄丢弃。

常见问题

如何把 SVG 转换为 React 组件?
粘贴文件并选择 React 输出。属性会改写为 JSX 写法,标记被包装成组件,属性会向下传递,方便在调用处设置大小和颜色。不会上传任何内容,转换在当前标签页中完成。
优化器到底会移除什么?
注释、元数据块、绘图软件留下的带命名空间的属性,以及空分组。数字会按你选择的精度取整,文件缺少 viewBox 时会自动补上。
为什么不合并路径或展平变换?
因为这些操作虽能节省字节,却可能改变文件的显示效果,或破坏被其他内容引用的 id。体积更小但渲染不同的图标并不算收益,所以优化器会在有风险的操作前停下。
可以把 SVG 转换为 Android VectorDrawable 吗?
可以。由于 VectorDrawable 只能绘制路径,矩形、圆形和多边形会先转换为路径。渐变、滤镜和文本没有对应项,会给出提示而不是悄悄丢弃。