我目前正在尝试获取APNG图像的元数据。我有能够完美地从一个APNG文件中获取不同的帧,我正在使用PNGJ(一个非常出色的独立Java库来阅读和编写PNG图像),但是我无法获取与每个的不同信息apng框架,例如每个帧的延迟。
我目前只能通过使用
来获取存储在标题部分中的简单PNG图像信息PngReader pngr = FileHelper.createPngReader(File);
pngr.imgInfo;
,但我不知道如何将信息存储在FCTL块上。我该怎么做?
您省略了使用PNGJ库的信息。正如我在另一个答案中提到的那样,该库不会解析APGN块(FCTL,FDAT)。它加载它们(您可以在Chunkslist属性中检查它们),但它们将被构成"未知"块,因此二进制数据将以原始形式保留。如果要查看FCTL块的内容内部,则可以自己分析二进制文件,或者自己实现该块类型的逻辑并将其注册在读者中(这是自定义块的示例)。
查看您当前如何从fdat读取4个字体整数'seq'。
您可以以相同的方式从FCTL读取信息。
请记住,某些信息存储在fctl为4个字节,有些是2个字节,有些是1个字节。