GIF 转 PNG 转换器

在浏览器里把 GIF 拆成按顺序编号的 PNG,打包成一个 zip 拿走。静态 GIF 出一个文件,动图出全部帧。

  • 免费
  • 无需注册
  • 无水印
  • 在浏览器里运行

GIF 转 PNG

转换器是编译成 WebAssembly 的 ffmpeg。你选第一个文件时它会下载一次(约 30 MB),之后就留在浏览器缓存里。

文件在你自己的浏览器里处理,不会上传。引擎本身有 30 MB,只在第一次使用时下载,之后都从浏览器缓存里取。

GIF 转 PNG 怎么用

  1. 1把 .gif 拖到上面的方框里,或者点一下选择。一次放几个也可以。
  2. 2引擎会在你选第一个文件时下载一次(约 30 MB),然后把每一帧读出来。
  3. 3下载 .zip。文件名是 frame-0001.png 往上排,顺序就是播放顺序。

一个 GIF,很多 PNG

GIF 是一个序列的容器,所以把它转成 PNG 并不是一对一的操作。每一帧都会变成自己的文件, 你拿回来的是一组带编号的图片,而不是单张图。这也是为什么即使你只放进去一个文件,结果 也是以 zip 的形式给你。

如果这个 GIF 是静态的,那这个序列的长度就是 1,你会拿到一张 PNG。页面的用法完全不变; 出来几张,由你给的那个文件决定。

这个方向不会丢任何东西

两种格式都是无损的,而在这里重要的每一项能力上 PNG 都更强。GIF 每帧最多 256 色、透明 只有一位;PNG 有一千六百万色、256 级透明。所以每一帧都被精确地搬过去,原本的透明色会 变成真正的 alpha 通道。

这让这个方向成为安全的那一个。反过来的 PNG 转 GIF 才是有取舍的地方,本站有一个单独的 页面把那些取舍讲清楚,而不是装作它们不存在。

大家真正拿这些帧做什么

三种用途覆盖了绝大多数情况。第一是挑静图:一个表情包 GIF 里有那么一帧特别好,你想把它 拿出来当一张干净的图片。第二是修动画:某一帧有错别字或者瑕疵,你打算改掉之后再拼回去, 而本站的 GIF 制作器可以从修好的序列重新生成。第三是喂给精灵图或者某个只吃编号静图的 动画工具。

有一点值得说明:GIF 逐帧导出出来的 PNG 张数完全由源文件决定,工具这边不做任何抽帧。一段 看起来很短的动图可能有上百帧,因为它录制时的帧率就很高;而一个「静态」GIF 有时其实是两帧, 只是第二帧和第一帧几乎一样。所以拿到 zip 之后先看一眼文件数量,再决定要哪几张。

全部过程都在你的浏览器里完成。帧是在本地拆出来的,不会被送到服务器,引擎第一次用时下载 一次,之后由浏览器缓存。

常见问题

我会拿到多少张 PNG?
每帧一张。静态 GIF 出一个文件;一段三秒、每秒 15 帧的动图大约出 45 张。它们按播放顺序编号,所以 frame-0001 就是你最先看到的那一帧。
为什么打包成 zip,而不是一个个下载?
因为动图很少只有一帧。四十个独立的下载提示根本没法用,而且大多数浏览器在头几个之后就会拦截。zip 是一个文件,解开就是一个已经排好序的文件夹。
透明会保留吗?
会,而且这是少数几个完全不丢东西的转换之一。PNG 能存的透明信息远比 GIF 曾经有过的多,所以 GIF 能标记的那一种透明色会被原样带过来。其余部分逐像素复制,因为两种格式都是无损的。
我为什么会需要单独的帧?
通常是为了改其中某一帧、挑一张封面图、喂给精灵图,或者在修好某一帧之后到别处重新拼回动画。它也是从一个表情包 GIF 里抠出一张干净静图最快的办法。
帧数有上限吗?
两千帧,远超任何正常的 GIF。这个上限的存在,是为了让一个病态文件没法在你来得及取消之前把浏览器标签页的内存吃光。单个文件最大 500 MB。

更多免费工具