Как получить размеры изображения из файла avif?
Я ищу (быстрый) способ получить метаданные изображения из avif-файла в моем java-приложении. В настоящее время это делается для многих форматов изображений путем анализа байтов необработанного заголовка файла.
Я могу распознать файл как avif по последовательности магических байтов в начале файла:
ftypavif
. Но я не могу найти никакой информации о том, как анализировать (максимальную) ширину и высоту изображения содержащихся изображений. Например, для JPEG2000 я могу искать маркер SIZ
0xFF51
и потом проанализирую размеры, но даже потратив много времени на чтение спецификаций avif, я не могу найти для него что-то подобное.
Мой подход неверен, и я не могу проанализировать размеры изображения без декодирования изображения (изображений)? Или есть какая-то документация (или даже полезная библиотека), которую я пропустил, чтобы получить ширину и высоту из avif-файла?
Любые подсказки приветствуются!
2 ответа
Ищи
Некоторые файлы AVIF имеют
ftypavis
(содержит анимацию), и я также видел AVIF с
ftypmif1
Если вы хотите анализировать только AVIF, вам сначала нужно понять формат ISOBMFF и контейнер HEIF . Существуют различные свойства (например, пространственные размеры изображения (ispe)), а также различные преобразования (обрезка, поворот, зеркальное отображение). Изображения могут быть сохранены в виде сетки изображений ...