MiniPNG

在线压缩GIF图片

压缩GIF图片,了解文件大小为何变化如此大

请稍等...(/)

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

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

图片已优化。

压缩 GIF 图片,了解为何压缩幅度差异如此之大

将两个 GIF 上传到本页面,你可能会发现一个能压缩 40%,另一个几乎没有变化。这并不是工具不稳定,而是 GIF 格式本身的特性,在上传前了解这一点很重要,因为这是 GIF 最让人困惑的地方。GIF 没有画质滑块,无法像 JPEG 那样通过降低画质来减小体积。GIF 压缩器唯一能做的就是去除重复内容,所以压缩效果几乎完全取决于你的文件本身有多少重复。

GIF 文件的字节实际分布在哪里

主要有两个地方,而且都不是摄影师理解的“画面”本身。第一个是颜色表:每个 GIF 都带有最多 256 色的调色板,动画 GIF 甚至可以为每一帧分别携带独立的调色板。第二个是帧内容。如果写入方式不够优化,GIF 会把每一帧都完整存储,每次仅仅移动一个小方块,却重绘整个画布三十次。

所以压缩的工作,就是把每帧的调色板合并为一个共享表,并避免重复存储未变化的部分。这两个步骤都不会影响你的颜色。在下方的第一个测试中,29 个独立帧调色板被合并为一个全局表,文件体积减少了 40%,我们抽查的四种颜色也完全保持原值。

我们的测试数据

我们用本页面处理了六个文件,并记录了压缩前后的字节数。

文件原始体积压缩后变化
屏幕录制动画,30 帧,640×40041,699 字节24,994-40.1%
带透明背景的单帧图片1,990 字节1,861-6.5%
已高度优化编码的动画,24 帧334,312 字节334,027-0.1%
单帧,已在紧凑调色板上56,676 字节56,6760%
含评论、XMP、GPS 和色彩配置文件的八帧动画15,850 字节9,953-37.2%
上传到本页面的 PNG703,830 字节74,379-89.4%

40% 和 0% 的文件都用的是同一个工具

第一行是屏幕录制:三十帧,大部分画布内容每帧都一样,几乎每帧都有独立调色板,有大量重复可去除。第五行则是单帧图片,已经在一个紧凑的 256 色调色板上,没有可再压缩的空间,最终体积与原始的 56,676 字节完全一致。

这就是许多搜索结果页面高调承诺的真实情况。如果你的 GIF 来自视频转换、屏幕录制或老旧的导出预设,通常能获得显著压缩。如果已经经过优化器处理,压缩幅度就很小。压缩结果为零,其实是工具在如实反馈,而不是通过牺牲画质来“制造”一个百分比。

动画压缩后依然是动画

我们通过字节级检查而不是直接播放来验证。压缩后的三十帧文件仍然包含三十帧,三十个时间块保留原有 80 毫秒延迟,还有循环扩展块指示浏览器持续播放。画布尺寸依然是 640×400。没有被合成为静态图片,也没有丢帧来让压缩比例更好看。

透明度和颜色都能完整保留

一个带透明的 GIF 压缩后体积减少了 6.5%。我们把结果绘制到画布上,读取了四个像素:角落依然完全透明,红色依然是 220, 40, 60,白色依然纯白。对三十帧动画做同样的检查,标题蓝、页面灰、行灰和红色方块在 40% 压缩后也毫无变化。因为压缩是通过去除重复,而不是近似颜色,所以你可以放心。

如果压缩后文件还是太大

压缩器只能去除重复,无法决定你的动画是不是多了四秒,也不能让宽度变窄。这些选择都在文件上传前就已决定,并且决定了最小体积。计算方式很直接:GIF 体积大致等于画布面积乘以帧数,所以宽高减半,体积能减掉约四分之三;帧率从每秒三十降到十二,在大多数短片里几乎看不出区别。如果压缩后的 GIF 还是太大,调整这两个参数比任何优化器都有效。

文件中隐藏的所有文本也会被清除

GIF 可以携带大量你看不到的文字信息,而且分布在不同位置。有注释块(动画每帧都可能有)、XMP 数据包(Photoshop 及 Adobe 工具会写入相机型号、作者、版权、GPS 坐标等)、纯文本扩展和色彩配置文件。这些内容在图片上都不会显示。

我们构建了一个包含所有这些信息的文件:十个注释块、完整的 XMP 数据包(含经纬度、高度、拍摄日期)、相机型号、软件、署名和版权、色彩配置文件和纯文本扩展。然后用本页面压缩,并用元数据工具读取结果。所有这些信息都被清除了。八帧依然是八帧,动画依然无限循环。

这些操作和压缩同步完成,无需额外上传,也不会增加耗时。这也解释了一个可能让你疑惑的现象:即使没有可去除的重复,文件依然能变小,因为原本隐藏的文本已经被移除。

本页面也支持其他图片格式

上传器同样支持 PNG、JPG、JPEG、WEBP、AVIF、SVG、TIFF、BMP 和 JFIF,每个文件都会以原格式返回。上表中的 PNG 就是以 PNG 格式上传和下载的,读取头部信息时仍然是 1400×900。进入 GIF 页面不会把你的其他图片转换成别的格式。

你能获得什么

  • 每一帧、每一帧的延迟和循环设置都被保留
  • 透明度完整保留,颜色值与原始文件一致
  • 原始画布尺寸不变
  • 每帧调色板合并为一个共享表,绝大部分压缩空间来自这里
  • 评论、XMP、GPS 坐标、相机和作者信息、色彩配置文件全部在同一次处理时去除
  • 当没有可去除的重复时,图片数据不会被动
  • 无需注册、无水印、无需邮箱

下一步做什么?

如果是照片而非动画,移除照片元数据 可以在不重新编码图片的情况下清除 EXIF 和 GPS 信息。 如果你的 GIF 其实只是单帧静态图片,压缩 PNG 通常更适合。 如果你想要更现代的格式,压缩 WebP 支持静态和动画图片。

常见问题

因为文件中已经没有太多可重复内容了。GIF 没有画质选项,压缩器无法像 JPEG 工具那样以清晰度换取体积,只能合并每帧的颜色表,并避免重复存储未变化的画布部分。我们测试的一个屏幕录制 GIF 因为重复内容多,从 41,699 字节压缩到 24,994,减少了 40.1%。而一个已经在紧凑调色板上的单帧图片则完全没有变化,依然是 56,676 字节。这两个文件都是同一天用同一个工具处理的。

可以,我们通过字节级检查而不是直接播放来验证。压缩后的三十帧文件依然包含三十帧,三十个时间块保留原有 80 毫秒延迟,还有循环扩展块指示浏览器持续播放。画布尺寸依然是 640×400。没有被合成为静态图片,也没有丢帧来让压缩比例更好看。

在我们的测试中不会。压缩是通过去除重复内容实现的,而不是近似图片。40% 压缩后,我们把结果绘制到画布上读取像素:标题蓝、页面灰、行灰和红色方块都与原始一致。对于带透明的 GIF,角落依然完全透明,红色依然是 220, 40, 60,白色依然纯白。

会,所有元数据都会在压缩时一并去除。GIF 会在多个地方隐藏数据:每帧都可能有注释块,XMP 数据包记录相机型号、作者、版权和 GPS 坐标,还有纯文本扩展和色彩配置文件。我们构建了一个包含所有这些信息的文件,用本页面压缩后用元数据工具读取,十个注释块全部消失,经纬度、高度、拍摄日期、相机型号、作者、署名和版权都被清空,XMP 数据包也完全移除。八帧依然是八帧,动画依然循环。

可以调整压缩器无法改变的两个因素:画布尺寸和帧数。GIF 体积大致等于画布面积乘以帧数,所以宽高减半,体积能减掉约四分之三;帧率从每秒三十降到十二,在短片里几乎看不出区别。裁掉最后一秒的效果比任何优化器都明显。如果 GIF 实际上只是单帧静态图片,其实完全没必要用 GIF 格式。

可以。上传器支持 PNG、JPG、JPEG、WEBP、AVIF、SVG、TIFF、BMP 和 JFIF,与 GIF 一起使用,每个文件都会以原格式返回。我们上传的一个 PNG 从 703,830 字节压缩到 74,379,下载回来仍然是 PNG,读取头部信息时依然是 1400×900。不会因为你打开了哪个页面而被转换为其他格式。