压缩 SVG
从Figma、Illustrator或Sketch导出的 SVG 文件通常包含比实际所需多2至5倍的标记信息:编辑器命名空间、注释、空组、冗余变换以及六位小数坐标。该工具会以 SVGO 风格处理您的 SVG ,去除冗余内容,同时确保渲染输出与原始像素完全一致。
如何压缩 SVG
-
1
粘贴或上传您的 SVG
支持接收原始 XML 文本或 .svg 文件。
-
2
选择优化级别
安全模式(移除注释及编辑器元数据)、激进模式(合并组别、四舍五入坐标值、合并路径)或自定义模式。
-
3
查看差异
比较处理前后的字节数,并预览渲染结果以确认视觉效果无变化。
-
4
复制或下载
将优化后的 SVG 直接粘贴到代码中,或另存为文件。
什么会导致 SVG 臃肿
在文本编辑器中打开Figma导出的 SVG 时,通常会看到以下内容:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="..."
xmlns:sketch="..." width="24.000000" height="24.000000"
viewBox="0 0 24.000000 24.000000" ...>
<!-- Generator: Figma ... -->
<title>icon</title>
<desc>Created with Figma</desc>
<g id="Page-1" stroke="none" fill="none" fill-rule="evenodd">
<g id="icon" transform="translate(0.000000, 0.000000)">
<path d="M12.000000,2.000000 L..." fill="#000000"/>
</g>
</g>
</svg>
几乎每一行都可以删除。渲染输出只需要 svg、viewBox 和 path。
优化器会移除的内容
| 移除项 | 为何安全 |
|---|---|
| XML 注释 | 从不参与渲染 |
| 编辑器命名空间(sketch、figma) | 浏览器不会使用 |
<title> / <desc>(可选) |
无障碍文本,若有意义请保留 |
空的 <g> 组 |
无视觉效果 |
| 默认属性值 | 浏览器本来就会使用默认值 |
| 恒等变换 | translate(0,0) 不起任何作用 |
| 坐标的小数位数 | 保留 3 位小数在屏幕上看起来完全一致 |
| 未使用的 ID | 仅保留在别处被引用的 ID |
注意事项
- 请勿移除 被 CSS 或填充、遮罩、滤镜中的
url(#...)引用的 ID。激进模式可能会破坏渐变效果。 - 请保留
viewBox。若缺少它,SVG 将无法进行响应式缩放。 - 请保留
<title>,如果你依赖它来实现无障碍访问(屏幕阅读器会朗读它)。 - 避免折叠
<use>实例。优化器可能会将其内联,从而丢失作为唯一来源的图案定义。
压缩何时能真正节省字节
SVG 是文本,这意味着服务器端的 gzip 压缩本身就已消除了大量冗余。一个未压缩时从 4KB 降到 1KB 的 SVG,经过传输后可能只从 1.2KB 降到 0.7KB。但这依然值得,而且更小的源文件也更易于阅读。
常见问题
安全模式不会。激进模式可能会移除 CSS 或 SMIL 动画所引用的 ID。如果你的 SVG 包含动画,请使用安全模式,或手动将相关 ID 加入白名单。
Figma/Illustrator 导出的文件通常可缩减 50%-80%。手写的 SVG 本身已较为紧凑,通常只能减少 10%-20%。
默认情况下为“是”,<title>、<desc>和aria-*属性将被保留。若 SVG 仅具装饰性且周围HTML已提供标签,则可选择移除这些属性。
是的。保留xmlns属性是因为在将 SVG 直接粘贴到HTML时该属性是必需的。对于小型图标而言,内联 SVG 通常是最快的呈现方式。
相关工具
材质设计颜色选择器
浏览Material Design色板,单击即可将任意色号(50至A700)以HEX、RGB或 HSL 格式复制。
GIF 制作器
将一组图片转换为动画 GIF。导出前可调整帧率、质量和尺寸。
图片尺寸调整器
将图片调整到精确的像素尺寸或百分比,同时保持宽高比。适合批量准备图片,无需上传。
图像放大器
使用 AI 超分辨率或经典插值,将低分辨率图像放大 2×、3× 或 4×,同时保留重要细节。
抽奖券制作工具
为非正式活动创建私密的双联连续编号票券页。可打印所有 A4 或 US Letter 页面,或下载当前页面。
BMP 转 PNG
在浏览器中将 BMP 文件转换为 PNG。无损转换,保留每一个像素,32 位 BMP 的 alpha 通道也会带入 PNG。