GIF帧提取工具
在线提取GIF动图每一帧,纯JS解析,支持PNG单帧下载和批量下载
上传 GIF 文件
GIF 帧提取工具说明
GIF(Graphics Interchange Format)是一种支持动画的位图格式,由多帧图像组成。本工具使用纯 JavaScript 解析 GIF 文件格式,提取每一帧图像并转换为 PNG 格式。
GIF 文件结构:GIF 文件由文件头(Header)、逻辑屏幕描述符(Logical Screen Descriptor)、全局颜色表(Global Color Table)、多个图形控制扩展(Graphic Control Extension)、图像描述符(Image Descriptor)、局部颜色表(Local Color Table)和图像数据(LZW 压缩)等部分组成。
解析流程:1) 读取文件头验证 GIF 格式;2) 读取逻辑屏幕描述符获取画布尺寸;3) 读取全局颜色表;4) 遍历各数据块,识别图形控制扩展(获取延迟时间、透明色等)和图像描述符;5) 使用 LZW 算法解压图像数据;6) 将索引颜色映射为 RGB 像素;7) 处理帧间 disposal 方法(保留/清除/恢复背景)。
LZW 解压:GIF 使用 LZW(Lempel-Ziv-Welch)无损压缩算法。解压时从初始码表开始,逐步构建字符串字典,将压缩码还原为颜色索引序列。
帧信息:每帧显示延迟时间(毫秒)、图像尺寸等信息。延迟时间决定动画播放速度,通常为 100ms(10fps)或 20ms(50fps)。
下载功能:可单击任意帧下载为 PNG 图片,也可一键下载所有帧。帧的合成考虑了 disposal 方法和透明色处理。