APNG

关注
义项:图像文件格式
APNG

APNG(Animated Portable Network Graphics,动态可移植网络图形)是一种在便携式网络图形(PNG)基础上扩展而来的位图动画图像文件格式,由 Mozilla 的 Stuart Parmenter 和 Vladimir Vukićević 于 2004 年创建。它在保留 PNG 无损压缩、24 位真彩色和完整 Alpha 透明通道的同时,实现了类似 GIF 的逐帧动画,并与非动画 PNG 保持向后兼容。2025 年 6 月 24 日,APNG 被正式纳入万维网联盟(W3C)发布的 PNG 第三版推荐标准,成为 PNG 核心规范的组成部分。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

APNG 是对 PNG 规范的一类扩展,用于在 PNG 文件内部存储逐帧动画序列,其效果与动态 GIF 接近,但同时支持 GIF 不具备的 24 位图像和 8 位透明度[1]。APNG 文件本身仍是合法的 PNG 文件,其第一帧以普通 PNG 数据流的形式保存,因此多数只识别 PNG 的解码器可以直接显示这一帧[2]。

在文件标识方面,APNG 使用 .png 与 .apng 两种扩展名,互联网媒体类型登记为 image/apng,与之并列的静态版本仍使用 image/png[1][3]。

原理

PNG 规范允许在数据流中插入解码器可忽略的辅助数据块,APNG 正是利用这一机制,把动画信息放入 PNG 未定义的辅助块中。规范新增了三类数据块:动画控制块 acTL 声明该文件为动态 PNG,记录总帧数与循环次数;帧控制块 fcTL 记录单帧的尺寸、位置、延迟与合成方式;帧数据块 fdAT 承载除首帧外各帧的压缩图像数据[2]。其中 acTL 必须出现在第一个 IDAT 块之前,才能被识别为 APNG[4]。

fcTL 与 fdAT 块共用一套从 0 开始、逐块递增的序号,用于在块顺序被打乱时恢复帧的先后与播放节奏;缺少序号或序号乱序时,解码器会放弃动画数据,仅显示占位图像[4]。每一轮播放开始前,输出缓冲区会被初始化为全透明黑色,以保证各次播放结果一致[5]。

其向后兼容性来自 PNG 的块忽略规则:不认识 APNG 专有块的解码器会跳过这些块,只解出第一帧静态图像,从而实现同一文件在不同软件中的降级显示[2]。

发展历程

APNG 的规范由 Mozilla 公司的 Stuart Parmenter 与 Vladimir Vukićević 于 2004 年创建,最初目的是为界面中的活动指示器等元素提供动画存储方案[6]。同一时期,PNG 团队另有一种位图动画格式 MNG,因其解码库体积较大而未被 Mozilla 采用,APNG 凭借较小的实现体量与对旧 PNG 实现的兼容性成为替代方案[6]。

2007 年 3 月 23 日,Mozilla Firefox 3.0 的开发测试版本开始支持 APNG;同年 4 月 20 日,PNG 组织以 10 比 8 的投票结果否决将 APNG 纳入官方标准,主要理由是该格式并非独立格式,且 PNG 应保持为静态图像格式[7]。此后 APNG 虽未进入标准,却被 Safari、Chrome、Edge 等浏览器陆续支持,2016 年苹果把它选为 iOS 10 的 iMessage 应用动态贴纸的优先格式,2017 年 Chromium 也加入了 APNG 支持[7][8]。

2025 年 6 月 24 日,万维网联盟发布 PNG 第三版推荐标准,正式把 APNG 收入核心规范,其内容与 Mozilla 维护多年的 APNG 文档保持一致,使标准与长期部署的实现相互对齐[9][10]。

应用

APNG 适合不需要与音频或其他轨道同步的简单动画,例如加载指示器、进度动画以及网页用户界面中的动态元素[11]。在 iOS 上,它是苹果 iMessage 与信息应用创建动态贴纸时所支持的格式之一[11]。

在网页图像格式选择中,APNG 被视为无损动画序列的合适方案,相较动态 GIF 具有更好的画质表现;对应的浏览器支持包括 Chrome 59、Edge 12、Firefox 3、Opera 46 与 Safari 8 及之后版本[11]。数字广播领域也采用过 APNG:2008 年世界数字多媒体广播组织将其作为向后兼容的扩展,用于数字广播的 MOT 幻灯片应用,并被写入相关欧洲电信标准协会标准的规范性附录[8]。

局限

APNG 的动画数据藏在 PNG 辅助块中,格式本身没有提供让软件在接收后区分动态与静态 PNG 的机制,早期软件难以据此判断文件是否含有额外帧,也无法就 PNG 与 APNG 进行协商,这一直是标准讨论中的争议点[6]。多个 APNG 优化工具在改动位深、调色板或隔行方式时会破坏 fdAT 数据的有效性,因此这类工具对 APNG 的处理能力受限[12]。

兼容性方面,微软 Internet Explorer 不支持 APNG,早期基于 Blink 引擎的浏览器也需要借助插件才能播放动画[13]。此外 APNG 只支持无损压缩,在以真彩色保存内容时文件体积可能明显偏大,需要靠减少颜色数量等方式控制大小[14]。

在更广泛的格式比较中,AVIF 与 WebP 的压缩效率优于 APNG,但 APNG 的浏览器支持面更广;APNG 是用于替代简单动态 GIF 的方案,并不适合作为通用视频或复杂交互动画的解决手段[11]。

参见

  • PNG —— APNG 所扩展的基础静态图像格式。

  • GIF —— APNG 在动态图像领域的主要替代对象。

  • WebP —— 同时支持静图与动画的网页图像格式。

  • AVIF —— 压缩效率较高的新一代图像格式。

  • MNG —— 与 APNG 同期竞争的多帧位图动画格式。

  • 万维网联盟 —— 发布 PNG 第三版标准、正式纳入 APNG 的标准组织。

词条评价
词条统计

浏览次数:3 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T21:46:46Z

历史版本

本条目引用的词条
PNG MNG iOS GIF WebP AVIF 万维网联盟