Эксиинтерфейс

Чтение и запись тегов EXIF ​​файла изображения.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
13 ноября 2024 г. 1.3.7 - - 1.4.0-альфа01

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

Чтобы добавить зависимость от Exifinterface, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

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

Groovy

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

Kotlin

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

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

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

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

Создать новую задачу

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

Версия 1.4

Версия 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 приведет к неработоспособности. ( If924c , б/236484611 )

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

  • Продолжите анализ после обнаружения недопустимого смещения IFD ( b/264729367 ).
  • Обработка изображений WebP, которые неправильно содержат маркер JPEG APP1 перед данными Exif ( b/281638358 ).
  • Убедитесь, что изменения XMP в файлах JPEG с отдельным сегментом XMP сохраняются в том же отдельном сегменте XMP с помощью saveAttributes() вместо записи в тег TIFF/Exif 700, который не поддерживается спецификацией XMP и где многие инструменты их не найдут. .
  • Избегайте дублирования данных XMP из отдельного сегмента в каталог предварительного просмотра TIFF при сохранении ( b/309843390 ).
  • Повысьте точность двойных преобразований в рациональные. ( б/312680558 ).
  • Примите рациональный формат (x/y) для setAttribute для «устаревших» рациональных тегов, которые автоматически преобразуются в десятичный формат при возврате из getAttribute ( b/312680558 ).
  • Убедитесь, что данные XMP, добавленные в изображение JPEG, которое еще не содержит XMP, записываются в отдельный сегмент, как указано в спецификации XMP. Документально подтверждено, что ExifInterface предпочитает XMP в теге Exif 700 в изображениях JPEG (нарушая спецификацию), поэтому это поведение сохраняется при чтении/записи изображений с существующими данными XMP.
  • Исправьте поврежденный вывод при записи изображений WebP с высотой или шириной более 8191 пикселей ( b/342697059 ).
  • Эта библиотека теперь использует аннотации NULL NULL JSpecify , которые являются типизированными. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode ( 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 содержит эти коммиты.

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

  • Исправлен анализ тегов, связанных с подразделами. ( аосп/1508143 )
  • Предотвратите RuntimeException при вызове setDataSource. ( c8e66e9 )
  • Предотвратите бесконечное зацикливание SkipBytes. ( fdbe88b )
  • Перехватывать RuntimeException из MediaMetadataRetriever. ( 389б21а )
  • Добавить поддержку сохранения атрибутов для файлов 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 .
  • Добавлена ​​поддержка чтения/записи вторичного формата (01.01.2020, 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 для возврата недопустимых значений даты и времени.
  • 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-бета01

19 августа 2020 г.

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

Новые возможности

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

Изменения API

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

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

  • Сделано 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-бета01

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-бета01

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 ).