获取APNG图像的元数据

时间:2012-10-21 19:43:15

标签: java png apng

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

我现在能够通过使用

获取存储在标题部分中的简单png图像信息
PngReader pngr = FileHelper.createPngReader(File);
pngr.imgInfo;

但我不知道如何根据fcTL块存储信息。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

您省略了使用PNGJ库的信息。正如我在另一个answer中提到的,这个库不解析APGN块(fcTL,fdAT)。它加载它们(您可以在ChunksList属性中检查它们),但它们将被设置为“UNKNOWN”块,因此二进制数据将保留为原始形式。如果你想查看fcTL块的内容,你要么自己解析二进制文件,要么自己实现该块类型的逻辑并在阅读器中注册它(here's an example用于自定义块)。 / p>