Exifinterface

Чтение и запись EXIF-тегов файлов изображений.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
3 декабря 2025 г. 1.4.2 - - -

Объявление зависимостей

Чтобы добавить зависимость от Exifinterface, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.exifinterface:exifinterface:1.4.2"
}

Котлин

dependencies {
    implementation("androidx.exifinterface:exifinterface:1.4.2")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.

Создать новый выпуск

Более подробную информацию см. в документации по системе отслеживания проблем .

Версия 1.4

Версия 1.4.2

3 декабря 2025 г.

Выпущен androidx.exifinterface:exifinterface:1.4.2 . Версия 1.4.2 содержит следующие коммиты .

Исправления ошибок

  • Поддержка анализа JPEG-файлов с дополнительными (разрешенными) байтами 0xFF перед любым маркером.

Версия 1.4.1

23 апреля 2025 г.

Выпущен androidx.exifinterface:exifinterface:1.4.1 . Версия 1.4.1 содержит следующие коммиты .

Исправления ошибок

  • Исправлена ​​ошибка, из-за которой передача null в setAttribute для TAG_XMP приводила к возникновению исключения.

Версия 1.4.0

26 февраля 2025 г.

Выпущен androidx.exifinterface:exifinterface:1.4.0 . Версия 1.4.0 содержит следующие коммиты .

Версия 1.4.0-rc01

29 января 2025 г.

androidx.exifinterface:exifinterface:1.4.0-rc01 выпущен без изменений с версии beta01. Версия 1.4.0-rc01 содержит следующие коммиты .

Версия 1.4.0-beta01

15 января 2025 г.

Выпущен androidx.exifinterface:exifinterface:1.4.0-beta01 . Версия 1.4.0-beta01 содержит следующие коммиты .

Изменения API

  • Обновите обработку HEIC XMP, чтобы отдавать предпочтение данным XMP из отдельного сегмента в файле, а не тегу 700 в данных Exif.

Исправления ошибок

  • Исправлен метод ExifInterface.getThumbnail*() для корректной работы после вызова saveAttributes() (ранее вызовы выполнялись успешно, но результат был неверным/неопределенным).
  • Исправлена ​​обработка PNG XMP для чтения и записи отдельного блока iTXt XMP вместо тега 700 внутри блока eXIf.
  • Исправление повреждения изображений WebP при обработке файлов изображений с конечными данными, отличными от WebP. ( b/385766064 ).

Версия 1.4.0-альфа01

13 ноября 2024 г.

Выпущен androidx.exifinterface:exifinterface:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие коммиты .

Новые функции

  • Добавить поддержку чтения данных XMP из изображений HEIF.
  • Добавить поддержку чтения Exif и XMP из изображений AVIF.

Изменения API

  • Укажите, что параметр location для setGpsInfo@Nullable и что передача значения null приведет к ошибке No-Op. ( If924c , b/236484611 )

Исправления ошибок

  • Продолжить анализ после обнаружения недопустимого смещения IFD ( b/264729367 ).
  • Обрабатывать изображения WebP, которые ошибочно содержат маркер JPEG APP1 перед данными Exif ( b/281638358 ).
  • Убедитесь, что изменения XMP в JPEG-файлах с отдельным сегментом XMP сохраняются в том же отдельном сегменте XMP с помощью saveAttributes() , а не записываются в тег TIFF/Exif 700, который не поддерживается спецификацией XMP и в котором многие инструменты их не найдут.
  • Избегайте дублирования данных XMP из отдельного сегмента в каталоге предварительного просмотра TIFF при сохранении ( b/309843390 ).
  • Повысить точность преобразований чисел двойной точности в рациональные числа. ( b/312680558 ).
  • Принимает рациональный формат (x/y) для setAttribute для «старых» рациональных тегов, которые автоматически преобразуются в десятичные при возврате из getAttribute ( b/312680558 ).
  • Убедитесь, что данные XMP, добавляемые к изображению JPEG, которое ещё не содержит XMP, записаны в отдельный сегмент, как указано в спецификации XMP. ExifInterface документирован как предпочитающий XMP в теге Exif 700 в изображениях JPEG (нарушая спецификацию), поэтому это поведение сохраняется при чтении/записи изображений с существующими данными XMP.
  • Исправление поврежденного вывода при записи изображений WebP с высотой или шириной более 8191 пикселей ( b/342697059 ).
  • Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I5cd0f , b/326456246 )
  • Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок с использованием AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( If6b4c , b/345472586 )

Версия 1.3.7

Версия 1.3.7

13 декабря 2023 г.

Выпущен androidx.exifinterface:exifinterface:1.3.7 . Версия 1.3.7 содержит следующие коммиты.

Исправления ошибок

  • Выдать исключение из ExifInterface.saveAttributes() при попытке записать слишком большой сегмент JPEG APP1 (ранее мы записывали недопустимый сегмент APP1 с неверной, усеченной длиной: ( b/263747161 )). Продолжить анализ после обнаружения недопустимого смещения IFD (ранее анализ немедленно останавливался, что могло приводить к возврату неверных значений: ( b/264729367 )).

Версия 1.3.6

Версия 1.3.6

8 февраля 2023 г.

Выпущен androidx.exifinterface:exifinterface:1.3.6 . Версия 1.3.6 содержит следующие коммиты.

Исправления ошибок

  • Исправлено чтение альфа-бита из фрагментов WebP VP8L ( b/255405635 ).

Версия 1.3.5

Версия 1.3.5

24 октября 2022 г.

Выпущен androidx.exifinterface:exifinterface:1.3.5 . Версия 1.3.5 содержит следующие коммиты.

Исправления ошибок

  • Исправлены два случая, когда saveAttributes() приводил к созданию недействительных файлов WebP.

Версия 1.3.4

Версия 1.3.4

5 октября 2022 г.

Выпущен androidx.exifinterface:exifinterface:1.3.4 . Версия 1.3.4 содержит следующие коммиты.

Исправления ошибок

  • Удалена поддержка сохранения атрибутов в файлах DNG. Поддержка, добавленная в версии 1.3.3, была неполной и приводила к повреждению файлов.

Версия 1.3.3

Версия 1.3.3

4 августа 2021 г.

Выпущен androidx.exifinterface:exifinterface:1.3.3 . Версия 1.3.3 содержит следующие коммиты.

Исправления ошибок

  • Исправлен парсинг тегов, связанных с подзащитными. ( aosp/1508143 )
  • Предотвратить RuntimeException при вызове setDataSource. ( c8e66e9 )
  • Предотвратить бесконечное зацикливание skipBytes. ( fdbe88b )
  • Перехват исключения RuntimeException из MediaMetadataRetriever. ( 389b21a )
  • Добавить поддержку сохранения атрибутов для файлов DNG ( 3017dbc )
  • Заменить теги, не являющиеся миниатюрами, тегами миниатюр. ( e1b916d )

Версия 1.3.2

Версия 1.3.2

2 декабря 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.3.2 . Версия 1.3.2 содержит следующие коммиты.

Исправления ошибок

  • Позволяет использовать SRATIONAL для GPS_LATITUDE и GPS_LONGITUDE .
  • Добавлена ​​поддержка чтения/записи вторичного формата (2020-01-01 00:00:00) тега DateTime.
  • Предотвращено временное удаление исходного файла при вызове saveAttribute().

Версия 1.3.1

Версия 1.3.1

14 октября 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.3.1 . Версия 1.3.1 содержит следующие коммиты.

Исправления ошибок

  • Исправлена ​​реализация saveAttributes для сохранения данных изображения в MediaProvider.

Версия 1.3.0

Версия 1.3.0

16 сентября 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.3.0 . Версия 1.3.0 содержит следующие коммиты.

Основные изменения по сравнению с версией 1.2.0

  • Расширенная поддержка записи WebP EXIF ​​для включения файлов, содержащих только фрагменты VP8 или VP8L.
  • Удалена ненужная буферизация, которая вызывала исключения OutOfMemory для больших файлов изображений.
  • Удалено INVALID_DATE_TIME . Вместо него используйте NULL для возврата недопустимых значений datetime.
  • Функция getGpsDateTime теперь возвращает Long.MIN_VALUE вместо -1 для недопустимого значения.

Версия 1.3.0-rc01

2 сентября 2020 г.

androidx.exifinterface:exifinterface:1.3.0-rc01 выпущен без изменений с версии 1.3.0-beta01 . Версия 1.3.0-rc01 содержит следующие изменения.

Версия 1.3.0-beta01

19 августа 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие изменения.

Новые функции

  • Расширенная поддержка записи WebP EXIF ​​для включения файлов, содержащих только фрагменты VP8 или VP8L.

Изменения API

  • Удалено INVALID_DATE_TIME . Вместо него используйте NULL для возврата недопустимого значения datetime.

Исправления ошибок

  • Функция getGpsDateTime теперь возвращает Long.MIN_VALUE вместо -1 , поскольку -1 является допустимым значением.
  • Теперь геттеры, связанные с DateTime, учитывают значение смещения (+/-) строки даты.
  • Удалена ненужная буферизация, которая вызывала исключения OutOfMemory для больших файлов изображений.
  • Установить региональные параметры по умолчанию на США
  • Добавление «.tmp» для создания временных файлов заменено на добавление префикса.

Версия 1.3.0-альфа01

19 февраля 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.

Изменения API

  • Добавлен новый метод: ExifInterface.getGpsDateTime()

Версия 1.2.0

Версия 1.2.0

1 апреля 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.2.0 . Версия 1.2.0 содержит следующие коммиты.

Основные изменения с версии 1.1.0

  • Добавлена ​​поддержка добавления EXIF ​​в файлы PNG.
  • Добавлена ​​поддержка только потоков файлов WebP и EXIF-данных.
  • Добавлен API для проверки поддержки указанного типа MIME.
  • Добавлены дополнительные теги для времени смещения: TAG_OFFSET_TIME , TAF_OFFSET_TIME_DIGITIZED и TAG_OFFSET_TIME_ORIGINAL

Версия 1.2.0-rc01

19 февраля 2020 г.

Выпущен androidx.exifinterface:exifinterface:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие коммиты.

Исправления ошибок

  • Исправлена ​​ошибка, из-за которой файлы JPEG сохранялись некорректно, если в JPEG были данные XMP.

Версия 1.2.0-beta01

18 декабря 2019 г.

Выпущен androidx.exifinterface:exifinterface:1.2.0-beta01 . Версия 1.2.0-beta01 содержит следующие коммиты .

Новые функции

  • Добавлена ​​поддержка добавления EXIF ​​в файлы PNG.
  • Добавлена ​​поддержка чтения и записи EXIF ​​из файлов WebP.
  • Добавлена ​​поддержка потока только данных EXIF.

Изменения API

  • Добавлен API для проверки поддержки указанного типа MIME.
  • Открыты теги OffsetTime* для чтения и записи

Исправления ошибок

  • Исправлена ​​ошибка, из-за которой возвращались неверные смещения для getAttributeRange()

Версия 1.1.0

Версия 1.1.0

20 ноября 2019 г.

Выпущен androidx.exifinterface:exifinterface:1.1.0 . Версия 1.1.0 содержит следующие коммиты .

Важные изменения с версии 1.0.0

  • Поддержка формата HEIF и дополнительных тегов XMP
  • Добавлена ​​поддержка создания объекта ExifInterface из File или FileDescriptor
  • Добавлены дополнительные методы для получения атрибутов: hasAttribute , getAttributeBytes и getAttributesRange

Версия 1.1.0-rc01

9 октября 2019 г.

Выпущен androidx.exifinterface:exifinterface:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .

Исправления ошибок

  • Добавлено отсутствующее имя формата (IFD) для предотвращения исключения ArrayIndexOutOfBoundsException при loadAttributes
  • Предотвращено удаление исходного файла при возникновении исключения во время вызова saveAttributes
  • Исправлена ​​проблема исключения при вызове saveAttributes() после перезаписи файла.

Версия 1.1.0-beta01

2 июля 2019 г.

Выпущена версия androidx.exifinterface:exifinterface:1.1.0-beta01 . Изменения, включённые в эту версию, можно найти здесь .

Новые функции

  • Выдает NullPointerException когда для аргументов @NonNull установлено null
  • Поддержка XMP-тегов

Изменения API

  • Добавлены дополнительные методы для получения информации об атрибутах.
  • hasAttribute , getAttributeBytes и getAttributesRange

Исправления ошибок

  • Предотвращение утечки памяти файлового дескриптора

Версия 1.1.0-альфа01

13 марта 2019 г.

Выпущена версия androidx.exifinterface:exifinterface:1.1.0-alpha01 . Полный список изменений, включённых в эту версию, можно найти здесь .

Новые функции

  • Поддержка формата HEIF

Изменения API

  • Добавлены дополнительные конструкторы ExifInterface.
  • Исправлена ​​опечатка: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

Исправления ошибок

  • Исправлена ​​проверка возможного переполнения для миниатюрного изображения ( aosp/748608 )