我正在尝试获取apng图像的元数据。我有 能够完美地从一个apng文件中获取不同的帧,我正在使用PNGJ(一个非常棒的独立Java库来读写PNG图像),但我 我无法获得针对每个人存储的不同信息 apng帧就像每帧的延迟一样。
我现在能够通过使用
获取存储在标题部分中的简单png图像信息PngReader pngr = FileHelper.createPngReader(File);
pngr.imgInfo;
但我不知道如何根据fcTL块存储信息。我怎么能这样做?
答案 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>