动态 PNG (.apng)

W3C 标准

APNG 在 PNG 基础上增加多帧动画和静态图像;不支持 APNG 的查看器可能只显示静态图像。

将 APNG 转换为 GIF

免费的浏览器端 APNG 转 GIF 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 APNG 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 APNG 文件:

十六进制签名 (偏移量 0):

89 50 4E 47 0D 0A 1A 0A

ASCII 表示形式: ‰PNG....

标准化: W3C 社区组报告(2021)/ Mozilla 扩展

技术规格

容器架构PNG 区块流,包含 acTL(动画控制)、fcTL(帧控制)和 fdAT(帧数据)区块
压缩方式Deflate(zlib)滑动窗口 LZ77 压缩;每帧采用 2D 自适应滤波
字节序大端序(网络字节序)
色彩空间sRGB, Display P3, 嵌入式 ICC 配置文件(iCCP)
通道与结构RGBA(每通道 8 位或 16 位真彩色,另有 8 位 Alpha 通道)
最大尺寸2,147,483,647 x 2,147,483,647 像素(PNG 的 31 位上限)
透明度完整的 8 位 Alpha 通道透明度(可平滑呈现 256 级半透明效果)
流式传输与渐进式加载APNG 文件包含静态图像;忽略动画数据块的解码器可能会将其显示为静态图像。

技术对比矩阵:APNG 对比同类产品

技术属性APNG (当前)GIFWEBPAVIF
色彩深度24 位 RGB(1670 万色)8 位索引(256 色)24 位 RGB(1670 万色)10 位 / 12 位 HDR
Alpha 透明度8 位平滑 Alpha(256 级)1 位开/关二元遮罩8 位平滑 Alpha8 位 / 10 位平滑 Alpha
向下兼容性一些 PNG 查看器可以显示静态图像;播放动画需要 APNG 支持。支持情况因浏览器而异。在旧版查看器中不兼容在旧版查看器中不兼容
压缩效率Deflate(中等)LZW(较差)VP8 关键帧/差异帧(高)AV1 帧间压缩(超高)

常见损坏模式与十六进制恢复指南

动画只播放第一帧,此后既不循环,也不播放后续帧。

根本原因: 第一个 IDAT 区块之前的“acTL”(动画控制)区块丢失或损坏。

恢复方法: 使用 apngasm 或 File2File.app Animation Converter 重新混流帧,以重建有效的动画控制块。

安全分析与解析器攻击向量

APNG 解析器会处理重复的帧控制块,其中格式错误的尺寸可能会导致整数溢出或堆内存耗尽。

已知攻击向量

  • 计算帧偏移(x_offset / y_offset)时发生整数溢出,导致帧合成越界。
  • 帧宽高不匹配,在帧混合期间导致缓冲区过读。
  • 动画解压无限循环会耗尽后端缩略图生成服务的 CPU 资源。

防御性最佳实践: 在光栅化之前,验证动画画布的总边界并限制允许的最大帧数。

历史渊源与里程碑

2021W3C 正式将 APNG 规范注册为公认的社区标准。
2017Chrome 59 增加了原生 APNG 支持;支持情况因浏览器及版本而异。
2008苹果将 APNG 用于动画 iOS 贴纸和 Safari 浏览器图形。
2004Stuart Parmenter 和 Vladimir Vukicevic 为 Mozilla Firefox 网络状态动画指定了 APNG。

核心优势与特点

  • 完整的 24 位 RGB 色彩加上 8 位 Alpha 透明度,彻底消除了 1 位 GIF 透明度的锯齿边缘伪影。
  • APNG 文件包含静态图像;忽略动画数据块的解码器可能会将其显示为静态图像。
  • 许多当前浏览器支持播放 APNG;是否可用取决于浏览器及其版本。

技术局限与劣势

  • 文件体积比 WebM 或 MP4 等现代视频动画格式更大。
  • 与传统 GIF 相比,生成时的编码复杂度和 CPU 使用率更高。
  • 缺乏专业视频编解码器中常见的前后帧运动矢量预测。

趣味技术冷知识

  • 官方 PNG 开发小组在 2007 年拒绝了 APNG,更倾向于最终未能得到普及的独立 MNG 格式。
  • 苹果在 iOS 10“信息”应用的 App Store 中使用 APNG 制作动画贴纸,推动了它在移动设备上的广泛普及。
  • 如果您在 1990 年代的古老图像查看器中打开 APNG 文件,它只会显示第一帧而不会崩溃。

常见技术问题

为什么 APNG 比 GIF 更好?

APNG 支持 1670 万种颜色和 256 级平滑的 Alpha 透明度,而 GIF 仅支持 256 种颜色和生硬的 1 位透明度。

每个浏览器都支持 APNG 吗?

许多当前浏览器支持播放 APNG;是否可用取决于浏览器及其版本。

我可以将 APNG 转换为标准的 GIF 或 MP4 吗?

可以。File2File.app 可以直接在您的网页浏览器中将 APNG 动画转换为轻量级的 GIF、MP4 或 WebM 文件。