2

我正在寻找一种(快速)方法来从我的 java 应用程序中的 avif 文件中检索图像元数据。目前通过分析文件的原始标题字节对许多图像格式完成此操作。

我可以通过文件开头的魔术字节序列将文件识别为avif ftypavif:. 但我无法找到任何信息如何解析包含图像的(最大)图像宽度和高度。例如,对于 JPEG2000,我可以搜索 SIZ 标记0xFF51并在之后解析尺寸,但即使在花费大量时间阅读 avif 的规范之后,我也无法找到类似的东西。

我的方法是否不正确,如果不解码图像就无法解析图像尺寸?或者是否有任何文档(甚至是可用的库)我错过了从 avif 文件中检索宽度和高度的信息?

任何提示表示赞赏!

4

2 回答 2

1

一些 AVIF 文件有ftypavis(包含动画),我也看到了 AVIFftypmif1

如果要单独解析AVIF,需要先了解ISOBMFF格式和HEIF容器。有各种属性(如图像空间范围(ispe)),然后是各种变换(裁剪、旋转、镜像)。图像可以以图像网格的形式存储...

于 2021-02-17T09:48:06.003 回答
1

搜索'ispe'框(这是一个强制框/项目),在类型(FullBox 版本和标志)之后跳过 4 个字节读取图像宽度的 4 个字节,读取图像高度的 4 个字节。利润 ;)

于 2021-03-09T21:31:50.107 回答