GIF 转 PNG 转换器

gif → png

把 GIF 文件转换成 PNG 图片。可以只保存第一帧,也可以把动画的每一帧各写成一个 PNG,全部在当前标签页完成。

设置
队列不会上传任何文件
将 GIF 文件拖放到此处
转换中...

关于这款 GIF 转 PNG 转换器

转换器默认保存每个 GIF 的第一帧。把“导出的帧”设为“全部帧”,它就会把动画的每一帧按顺序编号,各写成一个 PNG。当 GIF 不止一帧时,这些 PNG 会打包进一个以原文件命名、以 _frames.zip 结尾的 ZIP;只有一帧的 GIF 则直接交给您一个 PNG。

做这种导出时,页面会自己读取 GIF:它自带的解码器会遍历 LZW 数据,还原以隔行方式保存的帧,并把每一帧还原成它在屏幕上显示的样子,因为许多动画 GIF 只保存画面中发生变化的部分。读取文件不会下载任何库。

PNG 是无损格式,会保留 GIF 声明的透明度,这正是它与 GIF 转 JPG 的区别,后者会把每一帧铺在白色上。PNG 本身由浏览器写出。

使用方法

01

添加 GIF 文件

将文件拖放到上方区域,或点击“选择 GIF 文件”。可以一次添加多个文件。

02

选择帧

在“导出的帧”中保持“仅第一帧”,每个 GIF 得到一个 PNG;选择“全部帧”则导出整段动画。

03

转换

点击“转换为 PNG”。文件会逐个转换,每一行都会显示当前状态。

04

下载

用某一行的“下载”按钮保存该 PNG 或 ZIP,或用“全部下载(ZIP)”一次保存所有已完成的文件。

功能

  • 浏览器负责转换文件,不会把它们上传到服务器。
  • 页面用自带的解码器读取 GIF,包括以隔行方式保存的帧,打开文件不需要下载任何东西。
  • GIF 声明的透明度会保留下来,因为 PNG 是无损格式并带有 Alpha 通道。
  • 动画的每一帧都会写成带编号的 PNG,并打包进以该 GIF 命名的 ZIP。
  • 队列一次处理一个文件,每个完成的行都带有下载按钮。
  • 无需注册账号,也没有每日次数限制。

技术规格

规格 说明
工具 GIF 转 PNG 转换器
输入 GIF 图片(.gif),每个文件最大 100 MB
输出 无损 PNG,保持 GIF 的像素尺寸
帧 仅第一帧,或每一帧各一个 PNG
多帧结果 打包进以该 GIF 命名、以 _frames.zip 结尾的 ZIP
透明度 按 GIF 声明的样子保留
依赖库 JSZip 3.10,仅在生成 ZIP 时从 cdnjs CDN 加载
文件去向 哪儿也不去,始终留在当前标签页的内存中
使用须知

这款转换器做不到的事

它读取 GIF 并写出 PNG,每个文件一帧。有些需求要用别的工具。

结果不会动

一个 PNG 只装一幅画面。“全部帧”给您的是一叠静态图片,而不是会动的文件,这里也没有把它们重新合成的功能。GIF 转 WebP 同样输出静态图片,只是格式通常更小。

文件更大

PNG 是无损格式,一段长动画逐帧导出后体积会迅速累加。要压缩这些 PNG,请使用 图片压缩器。

不能挑选帧

设置只有第一帧和全部帧两种,无法只要第 4 到第 12 帧,也无法隔帧导出。

不会改变尺寸

每个 PNG 都保持 GIF 的像素尺寸。要更改尺寸,请使用 图片尺寸调整。

相关工具

常见问题

不会。页面在同一个标签页中读取每个 GIF 并写出 PNG。唯一需要下载的是 JSZip,来自 cdnjs CDN,且仅在需要生成 ZIP 时才会加载。

转换前把“导出的帧”设为“全部帧”。每一帧都会变成带编号的 PNG,只要超过一帧,它们就会打包进以该 GIF 命名、以 _frames.zip 结尾的 ZIP。

会。PNG 带有 Alpha 通道,GIF 声明为透明的像素依然透明。GIF 转 JPG 则会把它们铺在白色上,因为 JPG 没有透明度。

可以。许多动画 GIF 只保存与上一帧相比发生变化的部分。页面会先把每一帧还原成屏幕上显示的样子再保存,所以您得到的是完整画面而不是碎片。

多数情况下不会。PNG 是无损格式,整段动画逐帧保存后通常比原来的 GIF 更大。需要更小的文件请使用 图片压缩器。

文件始终留在您的设备上

页面在当前标签页中读取每个 GIF 并写出 PNG。文件不会上传,关闭标签页即从内存中清除。唯一从外部加载的是 JSZip,来自 cdnjs CDN,且仅在把帧打包为 ZIP 时才会加载。