Base64 转 GIF

粘贴包含 GIF 的 Base64,保存为帧数完整的 .gif 文件;也可以把静态图片转换为 GIF,调色板会根据图片自身的颜色生成,最多 256 色。

完全在浏览器中运行,不会上传任何数据。

使用方法

  1. 粘贴 Base64 字符串或 data:image/gif;base64 URI。
  2. 查看预览以及识别出的格式、尺寸和大小。
  3. 如果是 GIF 动图,请把下载格式设为“原始文件”以保留所有帧;如果是静态图片,保持 GIF 即可转换。
  4. 下载 .gif 文件。

Base64 中的 GIF 数据

GIF 文件以文本 GIF89a 或较早的 GIF87a 开头,编码为 Base64 后分别是 R0lGODlh 和 R0lGODdh,因此开头的六个字符 R0lGOD 是可靠的判断依据。Base64 GIF 常见于嵌入 CSS 的加载动画、邮件和网站统计中的透明追踪像素,以及聊天或论坛数据库中保存的表情动图。GIF 之所以常用于内嵌小图,是因为 1 × 1 的透明 GIF 是最小的有效图片文件之一,只有几十个字节。

如何保留动画

以原始格式下载时,解码后的字节会原样写出,所有帧、帧间隔和循环设置都会保留。所有转换输出都要先把图片绘制到画布上,而画布只能容纳一幅画面,因此转换时只保留第一帧,即使目标格式仍然是 GIF 也是如此。

这个限制也有用处:想把动图的第一帧提取为静态图片,只要粘贴 GIF,再下载为 PNG 或 JPG 即可。

GIF 转换如何处理颜色和透明度

  • 256 色。每张 GIF 图片最多只能存储 256 种颜色。转换器使用中位切分法从图片本身选取调色板,对 Logo、图标和简单图形效果很好;照片和平滑渐变则可能丢失细微的色阶。
  • 1 位透明度。每个像素要么完全透明,要么完全不透明,柔和的阴影和抗锯齿边缘会变成硬边。

如果色彩准确度或柔和的透明效果比 GIF 兼容性更重要,PNG 或 WebP 是更好的选择。

在命令行中只需一步即可解码:base64 --decode spinner.txt > spinner.gif。

常见问题

为什么 GIF 转换后不动了?

转换输出只包含第一帧。请把下载格式设为“原始文件”,按编码时的样子保存 GIF 动图。

为什么转换后的 GIF 有色带或颗粒感?

GIF 最多只能容纳 256 种颜色,照片这类色彩丰富的图片会被映射到最接近的调色板颜色。如需完整色彩,请使用 PNG 或 WebP。

半透明像素会怎样处理?

GIF 的透明只有“开”和“关”两种状态。每个像素会变成完全透明或完全不透明,柔和边缘周围可能出现锯齿。

怎样把 GIF 再转回 Base64?
请使用 GIF 转 Base64。使用原始文件进行编码,动画才会包含在字符串中。