如何把动态 GIF 转换成静态 JPG 或 PNG 图片
把 GIF 转换成静态图片很快。真正值得了解的是您会得到哪些帧,以及透明度会发生什么变化。
第一帧,还是全部帧
GIF 转 JPG 转换器两种都提供。默认只保留第一帧:动画的开场帧会被写出来,这正是封面图或缩略图需要的。选择全部帧,每一帧就会单独生成一张编号的 JPG,一起打包进一个 ZIP。
这里的全部帧指的是帧在屏幕上呈现的样子,而不是文件里存的原始补丁。动图 GIF 常常只存下画面中变化的部分,其余部分沿用前面的帧,以此节省空间,所以转换器要重建每一帧完整的画面:每一块放在哪里,哪里是透明的,前一帧又留下了什么。不过,它没有选取某一个瞬间的功能。要拿到第二秒那一帧,就导出全部帧,再留下您要的那一张。
GIF 的颜色本来就有限,转换并不能还原
一帧 GIF 最多只存 256 种颜色,从写在文件里的一个调色板中选出。凡是带渐变的内容,天空、阴影、肤色,制作 GIF 时都得靠近似处理,通常是用抖动(dithering):把调色板里两种颜色的像素交错分布,从远处看就像第三种颜色。这个取舍已经写死在文件里了。
转换成 PNG 会把这些像素原样复制,连抖动图案也一起保留。它不会把缺失的颜色补回来,因为文件里根本没有可以找回的数据。对这类素材来说,转换成 JPG 还要更差一些,因为 JPEG 会把精细的像素级图案抹平,可能把干净的抖动变成一片脏乎乎的糊状。这两种格式都无法改善 GIF 早已丢掉的东西。
在 JPG 和 PNG 之间选择
让内容来决定。市面上流传的大多数 GIF 都是扁平图形:屏幕录制、图表、带文字的表情包。这些内容棱角分明、颜色不多,正是 PNG 表现最好、JPEG 伪影最明显的地方。质量设置一般的 JPEG 里,文字周围会出现一圈灰色光晕,看到一次就很难忽视。
如果 GIF 是从视频画面做的,那一帧的表现就像照片,JPG 会给您一个小得多的文件,画质也不会让人质疑。以 PNG 保存的抖动帧也可能出人意料地大,因为分散的像素会破坏 PNG 压缩所依赖的游程模式。
透明度会发生什么
GIF 的透明度是每像素一位:一个像素要么完全透明,要么完全不透明,没有中间状态。这就是为什么抠图 GIF 的边缘常常是锯齿状的台阶,而不是柔和的过渡。
转换成 PNG,这种透明度会保留下来。转换成 JPG 就不行,因为 JPEG 根本没有透明通道。转换器会先把画布涂成白色,再把您的帧画在上面,所以每个透明像素都会变成白色。这个颜色是固定的,不是您能选的。要用在深色背景上的透明标志必须转成 PNG,否则周围会多出一圈白框。
在这里怎么操作
GIF 转 JPG 转换器是最直接的路径,输出 JPG。要输出 PNG,请使用通用图片转换器,在格式下拉菜单里选择 PNG,它接受 GIF 文件的方式是一样的。两个工具都能一次处理多个文件,并把处理好的一整套打包成 ZIP 交还给您,所以一整个文件夹的 GIF 只需一次操作,不用一个个来。
为什么在您的浏览器里运行
转换发生在您已经打开的这个页面里。您的 GIF 从硬盘读取、绘制到画布上、编码,再存回您的下载文件夹。不会发送到任何地方,这对屏幕录制来说比听起来更重要,因为在办公电脑上录制的 GIF,画面里往往会带着浏览器的标签栏、聊天窗口,或者某个客户的名字。
什么时候需要别的工具
这个转换器只是把帧提取出来,并不编辑动画本身。制作联系表、剪短循环、改变速度,或者把动图 GIF 变成 MP4,这些都得靠 ffmpeg 或专门的编辑器。从 GIF 导出静态图片是件小事,而这就是一个不问您要文件就能把这件小事做好的小工具。