跳到正文

将WebP转换为GIF

存成WebP的表情包、反应图和循环动画,在只认GIF的地方动不起来。把它们转成GIF,每一帧及其时间间隔都完整保留。不存储任何文件。

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

使用方法

1

添加WebP文件

动态或静态,一个或一批都可以:从聊天中保存的表情包、从网站下载的循环动画、设计工具导出的文件。

2

转换

每一帧都会按各自的时间间隔读取,并用根据图片生成的调色板写入GIF——256色,想要更小的文件也可以更少。

3

下载

逐个保存,或打包为ZIP下载。每一行都会显示保留了多少帧。

为什么还有人想要GIF

动态WebP在每一项技术指标上都胜过GIF——24位色彩、真正的Alpha通道、每一帧背后都是视频编码器、文件只有几分之一大小——但它有一个足以抵消这一切的弱点:能播放GIF的地方,并不都能播放WebP。旧版论坛软件、电子邮件客户端、部分社交网络的上传表单、某些模式下的Slack和Teams、幻灯片,以及一长串Windows应用程序,都会把WebP动画显示成静态图,甚至根本不显示。GIF则在任何地方都能播放,三十年来一直如此。

每一个WebP帧都会被解码,并按查看器显示的方式合成——WebP帧可以是局部的、混合的或被弃置的,而GIF需要完整的画面——然后量化为调色板,以相同的延迟写入。量化器根据每一帧自己的直方图生成256种颜色并加上抖动,因此卡通或表情包通常看不出差别,照片则会多出一层细颗粒。低于20毫秒的延迟会被提高到100毫秒,因为浏览器本来就会这样对待GIF,否则文件会播放得飞快。

透明度以GIF唯一拥有的形式保留下来:一个像素要么显示,要么不显示。柔和的阴影或羽化的边缘会在一半透明度处被切开,这就是为什么带光晕的表情包转出来会变成清晰的轮廓。在GIF里对此无能为力;这就是这种格式本身。

如果您需要的是别的

ffmpeg用两遍调色板来做这件事,对抖动的控制也更多:ffmpeg -i in.webp -vf "split[a][b];[a]palettegen[p];[b][p]paletteuse" out.gif。一文件夹的表情包用一个循环就能处理;在这里只需拖放一次,在这种规模下效果一样。

如果目的地本来就能播放WebP——所有现款浏览器和手机都可以——那就保留WebP。它更小、更清晰,还有真正的透明度,GIF严格来说只是一份兼容性副本。

常见问题

会保留动画吗?

会。每一帧都会被解码,并带着各自的延迟写入GIF,动画会像GIF一贯那样无限循环播放。每个文件下方的那一行会显示保留了多少帧。

为什么GIF比WebP大那么多?

因为GIF是1989年的格式。它每一帧最多只存256种颜色,用LZW压缩;WebP用的则是视频编码器。大五到十倍很正常。图片比较简单时,选择128色或64色会有帮助。

为什么颜色看起来有点不对?

GIF每一帧只能容纳256种颜色,所以照片类的WebP会被缩减为调色板。调色板根据图片本身生成并加上抖动,在大多数内容上都能很好地掩盖这一点;平滑渐变和肤色是最容易看出来的地方。

如果WebP是静态图片呢?

您会得到一个单帧GIF,那一行也会注明。如果您想要的是现代格式的静态图,WebP转PNG或WebP转JPG页面更合适。

我的文件会被存储在任何地方吗?

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

能反过来把GIF转成WebP吗?

本站暂时还不行。GIF转PNG会把第一帧提取为静态图;要把GIF转成动态WebP,可以用Google的免费命令行工具gif2webp,一行命令就能完成。

小贴士: GIF每一帧只能容纳256种颜色,也不支持半透明,所以平滑渐变会出现轻微色带,柔和的边缘会变得生硬。读取动态WebP的帧需要较新版本的Chrome、Edge或Opera;在其他浏览器中,只会把第一帧写成静态图,那一行也会注明。

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

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