跳到正文

将GIF转换为PNG

从GIF中取出一张清晰的静态图——保留透明背景,摆脱256色限制,不存储任何文件。

  • 绝不存储
  • 无需排队,无需等待
  • 无需注册,无水印

使用方法

1

添加GIF

将任意数量的.gif文件拖放到页面上。

2

转换

每个文件的第一帧都会变成无损PNG。

3

下载

可逐个保存,也可打包成ZIP下载。

GIF已经丢失的,PNG也无法找回

GIF最多只能容纳256种颜色,这些颜色组成调色板,像素按索引引用。转换为PNG会解除这个上限——PNG能容纳一千六百万种颜色——但没有东西可以填进去,因为颜色在制作GIF时就已经被丢弃了。一张存成GIF的照片转为PNG后,仍然是一张256色的照片,只是换了个能容纳更多颜色的格式。转换无法恢复调色板丢掉的内容,任何声称可以的工具都是在凭空捏造像素。

透明背景也是同样的道理,而这一点才真正让人头疼。GIF的透明只有一位:一个像素要么完全透明,要么完全不透明,没有中间状态。所以GIF里的圆形Logo边缘生硬、呈锯齿状阶梯,通常还带着一圈原先衬底颜色的光晕。PNG支持256级透明度,而转换后的文件只会用到其中一级,因为GIF本来就只有这一级。要让边缘变柔和,得重新绘制,而不是转换。

抖动解释了文件大小——转换后往往会变大。为了模拟调色板以外的颜色,GIF会把相邻颜色的像素以细密的棋盘格散布开——而在压缩器看来,这种图案就是噪点。PNG的压缩方式是根据相邻像素预测每个像素,这对平坦区域效果极佳,遇到抖动就会失效,所以一张经过抖动的GIF,可能生成像素完全相同、体积却大好几倍的PNG。纯色图形则会像预期那样转成更小的PNG。

动画无法保留:动态GIF只会转换第一帧,因为PNG是静态格式。这正是GIF虽然已有三十八年历史、其他方面样样都更差,却在2026年仍然存在的真正原因。

如果您需要的是别的

如果GIF是动的,那这个转换就完全选错了。网页上的短动画用ffmpeg -i in.gif -c:v libvpx-vp9 out.webm转换,或者改用动态WebP,体积会比GIF小得多、播放也更流畅,而且所有现行浏览器都支持这两种格式。如果必须保持GIF,正确的做法是gifsicle --optimize=3。

如果只要静态帧,值得先想想这张图片是什么。如果是照片,PNG只是以完整的文件体积保存一个256色的近似版本,而JPG会更小,额外损失几乎可以忽略。如果是图形,pngquant或oxipng -o 4能大幅缩小PNG,而ImageMagick的magick in.gif -coalesce out-%d.png会导出每一帧,而不只是第一帧。

常见问题

我得到的是哪一帧?

第一帧。对于静态GIF(2000年代保存的Logo和图表很常见这种格式)来说,第一帧就是整张图片。

会保留透明背景吗?

会——GIF的单色透明可以完整转入PNG。

为什么要把静态GIF转成PNG?

GIF最多只有256种颜色,压缩方式也很古老。对于图形来说,PNG体积更小、色彩完整,所有设计工具也都更偏爱PNG。

能提取动画的所有帧吗?

目前还不行——本工具每个文件只生成一张清晰的静态图。

我的文件会被存储吗?

不会——任何环节都不会存储任何文件。

小贴士: 动态GIF只转换第一帧。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。