一个 GIF,很多 PNG
GIF 是一个序列的容器,所以把它转成 PNG 并不是一对一的操作。每一帧都会变成自己的文件, 你拿回来的是一组带编号的图片,而不是单张图。这也是为什么即使你只放进去一个文件,结果 也是以 zip 的形式给你。
如果这个 GIF 是静态的,那这个序列的长度就是 1,你会拿到一张 PNG。页面的用法完全不变; 出来几张,由你给的那个文件决定。
这个方向不会丢任何东西
两种格式都是无损的,而在这里重要的每一项能力上 PNG 都更强。GIF 每帧最多 256 色、透明 只有一位;PNG 有一千六百万色、256 级透明。所以每一帧都被精确地搬过去,原本的透明色会 变成真正的 alpha 通道。
这让这个方向成为安全的那一个。反过来的 PNG 转 GIF 才是有取舍的地方,本站有一个单独的 页面把那些取舍讲清楚,而不是装作它们不存在。
大家真正拿这些帧做什么
三种用途覆盖了绝大多数情况。第一是挑静图:一个表情包 GIF 里有那么一帧特别好,你想把它 拿出来当一张干净的图片。第二是修动画:某一帧有错别字或者瑕疵,你打算改掉之后再拼回去, 而本站的 GIF 制作器可以从修好的序列重新生成。第三是喂给精灵图或者某个只吃编号静图的 动画工具。
有一点值得说明:GIF 逐帧导出出来的 PNG 张数完全由源文件决定,工具这边不做任何抽帧。一段 看起来很短的动图可能有上百帧,因为它录制时的帧率就很高;而一个「静态」GIF 有时其实是两帧, 只是第二帧和第一帧几乎一样。所以拿到 zip 之后先看一眼文件数量,再决定要哪几张。
全部过程都在你的浏览器里完成。帧是在本地拆出来的,不会被送到服务器,引擎第一次用时下载 一次,之后由浏览器缓存。