请稍等...(/)
我们正在优化您的图片。请稍候片刻,以确保为您提供最高质量的结果。
太棒了,我们已成功压缩您的图片。
图片已优化。
我们正在优化您的图片。请稍候片刻,以确保为您提供最高质量的结果。
图片已优化。
用记事本打开一个SVG,你会看到全部内容:标签、数字、文本。这就是SVG格式的本质。没有像素,没有照片,只有绘制图形的指令。这一点很重要,因为它决定了这里的压缩方式。没有任何内容被挤压或近似处理。多余的文本直接被移除,绘图部分完全不受影响。
几乎没有部分是实际的图形。你从Illustrator、Figma或Inkscape导出一个logo,文件里会带着编辑器的“文书工作”:生成器注释、不再需要的DOCTYPE、XML声明、用RDF描述文档的元数据块、图层名称,以及一堆没有任何元素使用的样式类。在我们测试的一个真实logo中,这些内容占了大约三分之二的文件体积。真正的图形部分反而很小。
还有数字。编辑器会用完整的浮点精度写入坐标,所以一个位于10、宽度为180的矩形会被存储为10.000000和180.00000000。每个路径的每个点都这样写,光是小数点后的数字就可能比实际绘图内容还多。
很多人会担心这一点,其实完全没必要。SVG没有分辨率。无论显示在多大尺寸上,它都会被重新绘制——无论是16像素的favicon还是巨大的广告牌。移除元数据块不会改变这一点。你下载回来的文件和你上传的文件一样可以任意缩放,在任何尺寸下都完全一致,并且仍然可以在你原来的编辑器中编辑。
清理过程本身是保守设计的,只针对那些不会影响渲染的内容。
| 被移除 | 保留 |
|---|---|
| 编辑器注释和生成器字符串 | 所有图形、路径和曲线 |
| 元数据块及其RDF命名空间 | 颜色、渐变和透明度 |
| DOCTYPE和XML声明 | 文本元素和字体 |
| 未被引用的定义 | 正在使用的滤镜、蒙版和剪切路径 |
| 空的分组和图层 | 变换和viewBox |
| 坐标中多余的小数位 | 任何会影响显示的内容 |
SVG通常是logo或图标,这意味着它会出现在网站每个页面的页眉,并且总是在其他内容之前加载。照片通常是延迟加载的,而图标不是。给页眉logo瘦身几KB,比给文章中部的图片瘦身同样体积,对页面速度的提升更大,因为浏览器必须等页眉加载完才能开始渲染页面。
清理过程会缩短文件内部的id属性。SVG内部的引用会同步更新,所以渐变、蒙版和剪切路径都能正常工作,图形渲染也完全一致。但它无法感知文件外部的代码。如果你的SVG作为图标精灵被其他页面引用,或者有样式表或脚本通过id访问元素,替换文件后建议测试这些功能。对于普通logo或导出的图标(大多数SVG),无需担心。
有时候SVG其实并不是矢量图。在Illustrator画板上放一张照片,导出为SVG时,图片会以很长的base64字符串嵌入到XML里。这样一个文件可能只有一个图形却有两兆大小。清理标记不会影响这部分内容,因为那不是标记。如果你的文件几乎没有变小,而且本身就含有照片,这就是原因。解决办法是把图片单独提取出来,作为JPEG或PNG压缩。
没有选项、没有压缩级别、没有高级设置。上传文件,自动清理后下载即可。批量上传同样适用,可以逐个下载,也可以打包成ZIP一起下载。
文件通过加密连接传输,清理完成后,一小时内从服务器删除。不做任何保留,也不会被用于其他用途。
你的logo也有位图版本?压缩PNG适合处理透明版本,压缩WebP适合现代格式。如果SVG里嵌入了照片,压缩JPG就是图片该去的地方。