MiniPNG

在线压缩SVG图片

移除元数据,保留矢量:SVG渲染完全一致

请稍等...(/)

我们正在优化您的图片。请稍候片刻,以确保为您提供最高质量的结果。

太棒了,我们已成功压缩您的图片。

图片已优化。

通过删除编辑器遗留内容来压缩SVG文件

用记事本打开一个SVG,你会看到全部内容:标签、数字、文本。这就是SVG格式的本质。没有像素,没有照片,只有绘制图形的指令。这一点很重要,因为它决定了这里的压缩方式。没有任何内容被挤压或近似处理。多余的文本直接被移除,绘图部分完全不受影响。

文件体积实际上来自哪里

几乎没有部分是实际的图形。你从Illustrator、Figma或Inkscape导出一个logo,文件里会带着编辑器的“文书工作”:生成器注释、不再需要的DOCTYPE、XML声明、用RDF描述文档的元数据块、图层名称,以及一堆没有任何元素使用的样式类。在我们测试的一个真实logo中,这些内容占了大约三分之二的文件体积。真正的图形部分反而很小。

还有数字。编辑器会用完整的浮点精度写入坐标,所以一个位于10、宽度为180的矩形会被存储为10.000000和180.00000000。每个路径的每个点都这样写,光是小数点后的数字就可能比实际绘图内容还多。

它始终是矢量图,所以不会有画质损失

很多人会担心这一点,其实完全没必要。SVG没有分辨率。无论显示在多大尺寸上,它都会被重新绘制——无论是16像素的favicon还是巨大的广告牌。移除元数据块不会改变这一点。你下载回来的文件和你上传的文件一样可以任意缩放,在任何尺寸下都完全一致,并且仍然可以在你原来的编辑器中编辑。

会被移除的内容

清理过程本身是保守设计的,只针对那些不会影响渲染的内容。

被移除保留
编辑器注释和生成器字符串所有图形、路径和曲线
元数据块及其RDF命名空间颜色、渐变和透明度
DOCTYPE和XML声明文本元素和字体
未被引用的定义正在使用的滤镜、蒙版和剪切路径
空的分组和图层变换和viewBox
坐标中多余的小数位任何会影响显示的内容

为什么更小的SVG比更小的照片更重要

SVG通常是logo或图标,这意味着它会出现在网站每个页面的页眉,并且总是在其他内容之前加载。照片通常是延迟加载的,而图标不是。给页眉logo瘦身几KB,比给文章中部的图片瘦身同样体积,对页面速度的提升更大,因为浏览器必须等页眉加载完才能开始渲染页面。

上线前值得检查的一件事

清理过程会缩短文件内部的id属性。SVG内部的引用会同步更新,所以渐变、蒙版和剪切路径都能正常工作,图形渲染也完全一致。但它无法感知文件外部的代码。如果你的SVG作为图标精灵被其他页面引用,或者有样式表或脚本通过id访问元素,替换文件后建议测试这些功能。对于普通logo或导出的图标(大多数SVG),无需担心。

如果你的SVG里嵌入了照片

有时候SVG其实并不是矢量图。在Illustrator画板上放一张照片,导出为SVG时,图片会以很长的base64字符串嵌入到XML里。这样一个文件可能只有一个图形却有两兆大小。清理标记不会影响这部分内容,因为那不是标记。如果你的文件几乎没有变小,而且本身就含有照片,这就是原因。解决办法是把图片单独提取出来,作为JPEG或PNG压缩。

无需设置

没有选项、没有压缩级别、没有高级设置。上传文件,自动清理后下载即可。批量上传同样适用,可以逐个下载,也可以打包成ZIP一起下载。

你的文件会发生什么

文件通过加密连接传输,清理完成后,一小时内从服务器删除。不做任何保留,也不会被用于其他用途。

你将获得

  • 移除编辑器元数据、生成器注释、DOCTYPE和未使用的定义
  • 坐标精确到合理的小数位,而不是九位小数
  • 文件依然可以无限缩放,依然可以在你的编辑器中打开
  • 每个尺寸下渲染效果与原文件完全一致,已对比验证
  • 支持批量上传,可逐个下载或打包ZIP下载
  • 无需注册、无需安装,文件一小时后从服务器删除

下一步?

你的logo也有位图版本?压缩PNG适合处理透明版本,压缩WebP适合现代格式。如果SVG里嵌入了照片,压缩JPG就是图片该去的地方。

常见问题

不会,也不可能。SVG没有像素,也没有分辨率。它是一组绘图指令,浏览器会根据显示尺寸重新绘制,所以无论是在手机还是广告牌上都一样清晰。清理文件只会移除不会被渲染的文本,比如注释和元数据。图形、曲线和颜色都不会被改变,因此各尺寸下的显示效果完全一致。

就是你的编辑器添加的“文书工作”。Illustrator、Figma和Inkscape都会写入生成器注释、XML声明、DOCTYPE、RDF格式的元数据块、图层名称,通常还会有一堆没有被使用的样式类。此外,坐标会以全精度写入,比如180会被存成180.00000000。在典型的导出logo中,这些内容加起来大约占了文件的三分之二。真正绘制图像的部分反而很小。

可以。输出文件仍然是标准SVG,可以像原文件一样在Illustrator、Figma、Inkscape或任何文本编辑器中打开。唯一的区别是部分编辑器的“账本”内容被清除了,比如图层名称可能不会和你原来的一样。图形本身不会改变,完全可编辑。

常见原因有两个:一是文件本身已经优化过,比如用带有清理功能的工具导出的SVG,或者之前已经用优化器处理过;二是文件里嵌入了照片。第二种情况很常见:在Illustrator画板上放一张照片并导出为SVG时,图片会以base64块的形式嵌入XML。这部分是图片数据,不是标记,所以清理标记不会影响它。如果一个两兆的SVG几乎没有变化,可以用文本编辑器打开,看看是否有很长的以data:image开头的字符串。

有可能,所以上线前建议了解。清理过程会缩短文件内部的id属性。SVG内部的引用会同步更新,因此渐变、蒙版和剪切路径都能正常工作,图像渲染也不会改变。但文件外部的代码就不同了:如果样式表通过id选中元素,JavaScript对某个节点做动画,或者文件是被其他页面引用的精灵,替换文件后请务必测试这些功能。对于独立logo或导出图标(大多数SVG),无需担心。

需要,而且两者是互补的。这次清理移除了本不该在文件里的文本。gzip则是你的Web服务器在发送文件时对剩余文本进行压缩。两者结合是常规做法,最终文件会比单独压缩更小。还建议检查服务器是否为image/svg+xml类型开启了压缩,因为有些默认配置只压缩HTML、CSS和JavaScript。