1

我目前正在尝试获取 apng 图像的元数据。我已经能够完美地从一个 apng 文件中获取不同的帧,并且我正在使用 PNGJ(一个非常棒的独立 Java 库,用于读取和写入 PNG 图像),但我无法获得针对每个 apng 帧存储的不同信息就像每一帧的延迟。

我目前只能通过使用获取存储在标题部分中的简单 png 图像信息

PngReader pngr = FileHelper.createPngReader(File);
pngr.imgInfo;

但我不知道如何将信息存储在 fcTL 块中。我怎样才能做到这一点?

4

2 回答 2

2

看看你目前是如何从 fdAT 读取 4 字节整数 'seq' 的。

您可以以同样的方式从 fcTL 读取信息。

请记住,有些信息在 fcTL 中存储为 4 个字节,有些为 2 个字节,有些为 1 个字节。

于 2012-10-21T20:05:31.443 回答
2

您省略了您正在使用PNGJ库的信息。正如我在另一个答案中提到的,这个库不解析 APGN 块(fcTL、fdAT)。它加载它们(您可以在 ChunksList 属性中检查它们),但它们将被设置为“未知”块,因此二进制数据将以原始形式保留。如果您想查看 fcTL 块的内容,您可以自己解析二进制文件,或者自己实现该块类型的逻辑并将其注册到阅读器中(这里是自定义块的示例)。

于 2012-10-22T01:40:24.147 回答