Exifinterface

Lisez et écrivez des balises d'affichage EXIF de fichier image.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
13 novembre 2024 1.3.7 - - 1.4.0-alpha01

Déclarer des dépendances

Pour ajouter une dépendance sur Exifinterface, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

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

Kotlin

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

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.4

Version 1.4.0-alpha01

13 novembre 2024

Publication d'androidx.exifinterface:exifinterface:1.4.0-alpha01. La version 1.4.0-alpha01 contient ces commits.

Nouvelles fonctionnalités

  • Ajout de la prise en charge de la lecture des données XMP à partir d'images HEIF.
  • Ajout de la prise en charge de la lecture d'Exif et de XMP à partir d'images AVIF.

Modifications apportées à l'API

  • Indiquez que le paramètre location pour setGpsInfo est @Nullable et que la transmission de null entraînera une opération sans effet. (If924c, b/236484611)

Correction de bugs

  • Poursuite de l'analyse après avoir rencontré un décalage IFD non valide (b/264729367).
  • Gérer les images WebP qui contiennent par erreur un repère JPEG APP1 avant leurs données Exif (b/281638358).
  • Assurez-vous que les modifications XMP dans les fichiers JPEG avec un segment XMP distinct sont stockées dans le même segment XMP distinct par saveAttributes(), au lieu d'être écrites dans la balise TIFF/Exif 700, qui n'est pas compatible avec la spécification XMP et où de nombreux outils ne les trouveront pas.
  • Évitez de dupliquer les données XMP d'un segment distinct dans le répertoire d'aperçu TIFF lors de l'enregistrement (b/309843390).
  • Amélioration de la précision des conversions de doubles en nombres rationnels. (b/312680558).
  • Acceptation du format rationnel (x/y) pour setAttribute pour les anciennes balises rationnelles, qui sont automatiquement converties en décimales lorsqu'elles sont renvoyées depuis getAttribute (b/312680558).
  • Assurez-vous que les données XMP ajoutées à une image JPEG qui ne contient pas déjà de XMP sont écrites dans un segment distinct, comme spécifié dans la spécification XMP. Il est documenté que ExifInterface préfère le XMP dans la balise Exif 700 dans les images JPEG (ce qui ne respecte pas la spécification). Ce comportement est donc conservé lors de la lecture/écriture d'images avec des données XMP existantes.
  • Correction de la sortie corrompue lors de l'écriture d'images WebP dont la hauteur ou la largeur est supérieure à 8 191 px (b/342697059).
  • Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont des annotations de type d'utilisation. Les développeurs Kotlin doivent utiliser les arguments de compilateur suivants pour appliquer une utilisation correcte: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0f, b/326456246)
  • Suppression de la description manuelle de l'accès aux nouvelles API de la plate-forme, car cela se produit automatiquement via la modélisation d'API lorsque vous utilisez R8 avec AGP 7.3 ou version ultérieure (par exemple, R8 version 3.3) et pour tous les builds lorsque vous utilisez AGP 8.1 ou version ultérieure (par exemple, D8 version 8.1). Les clients qui n'utilisent pas AGP sont invités à passer à la version 8.1 de D8 ou ultérieure. Consultez cet article pour en savoir plus. (If6b4c, b/345472586)

Version 1.3.7

Version 1.3.7

13 décembre 2023

Publication d'androidx.exifinterface:exifinterface:1.3.7. Liste des commits de la version 1.3.7

Correction de bugs

  • Génère une exception à partir de ExifInterface.saveAttributes() lorsque vous essayez d'écrire un segment JPEG APP1 trop volumineux (auparavant, nous écrivions un segment APP1 non valide avec une longueur incorrecte et tronquée:(b/263747161)). Poursuite de l'analyse après avoir rencontré un décalage IFD non valide (auparavant, l'analyse s'arrêtait immédiatement, ce qui pouvait entraîner le retour de valeurs incorrectes : b/264729367).

Version 1.3.6

Version 1.3.6

8 février 2023

Publication d'androidx.exifinterface:exifinterface:1.3.6. Liste des commits de la version 1.3.5

Correction de bugs

  • Correction de la lecture du bit alpha à partir de fragments WebP VP8L (b/255405635)

Version 1.3.5

Version 1.3.5

24 octobre 2022

Publication d'androidx.exifinterface:exifinterface:1.3.5. Liste des commits de la version 1.3.5

Correction de bugs

  • Correction de deux cas où saveAttributes() produit des fichiers WebP non valides.

Version 1.3.4

Version 1.3.4

5 octobre 2022

Publication d'androidx.exifinterface:exifinterface:1.3.4. Liste des commits de la version 1.3.4

Correction de bugs

  • Suppression de la prise en charge de l'enregistrement des attributs pour les fichiers DNG. La prise en charge ajoutée dans la version 1.3.3 était incomplète et produisait des fichiers corrompus.

Version 1.3.3

Version 1.3.3

4 août 2021

Publication d'androidx.exifinterface:exifinterface:1.3.3. Liste des commits de la version 1.3.3

Correction de bugs

  • Correction de l'analyse des balises associées à "subsec". (aosp/1508143)
  • Prévention de "RuntimeException" lors de l'appel de "setDataSource". (c8e66e9)
  • Prévention de la répétition en boucle de "skipBytes". (fdbe88b)
  • Capture de "RuntimeException" depuis "MediaMetadataFetcher". (389b21a)
  • Ajout de la prise en charge de l'enregistrement des attributs pour les fichiers DNG. (3017dbc)
  • Remplacement des balises qui ne sont pas des miniatures par des balises de type miniature. (e1b916d)

Version 1.3.2

Version 1.3.2

2 décembre 2020

Publication d'androidx.exifinterface:exifinterface:1.3.2. Liste des commits de la version 1.3.2

Correction de bugs

  • Autorisation de SRATIONAL pour GPS_LATITUDE et GPS_LONGITUDE.
  • Ajout de la prise en charge de la lecture et de l'écriture d'un format secondaire (2020-01-01 00:00:00) de la balise "DateTime".
  • Prévention de la suppression temporaire du fichier d'origine lors de l'appel de "saveAttribute()".

Version 1.3.1

Version 1.3.1

14 octobre 2020

Publication d'androidx.exifinterface:exifinterface:1.3.1. Liste des commits de la version 1.3.1

Correction de bugs

  • Correction de l'implémentation de "saveAttributes" pour conserver les données d'image dans "MediaProvider".

Version 1.3.0

Version 1.3.0

16 septembre 2020

Publication d'androidx.exifinterface:exifinterface:1.3.0. Liste des commits de la version 1.3.0

Principales modifications depuis la version 1.2.0

  • Prise en charge étendue de l'écriture de l'affichage EXIF dans des fichiers WebP afin d'inclure les fichiers ne contenant que des paquets fragmentés VP8 ou VP8L.
  • Suppression de la mise en mémoire tampon inutile, à l'origine des exceptions "OutOfMemory" pour les fichiers image volumineux.
  • Suppression de INVALID_DATE_TIME. Utilisez plutôt NULL pour renvoyer des valeurs de date et heure non valides.
  • getGpsDateTime affiche désormais Long.MIN_VALUE au lieu de -1 pour une valeur non valide.

Version 1.3.0-rc01

2 septembre 2020

Publication d'androidx.exifinterface:exifinterface:1.3.0-rc01 sans aucune modification par rapport à la version 1.3.0-beta01. Liste des commits de la version 1.3.0-rc01

Version 1.3.0-beta01

19 août 2020

Publication d'androidx.exifinterface:exifinterface:1.3.0-beta01. Liste des commits de la version 1.3.0-beta01

Nouvelles fonctionnalités

  • Prise en charge étendue de l'écriture de l'affichage EXIF dans des fichiers WebP afin d'inclure les fichiers ne contenant que des paquets fragmentés VP8 ou VP8L.

Modifications apportées à l'API

  • Suppression de INVALID_DATE_TIME. Utilisez plutôt NULL pour renvoyer une valeur de date et heure non valide.

Correction de bugs

  • getGpsDateTime affiche désormais Long.MIN_VALUE au lieu de -1, car -1 est une valeur valide.
  • Modification des getters associés à "DateTime" pour prendre en compte la valeur de décalage (+/-) de la chaîne de date.
  • Suppression de la mise en mémoire tampon inutile, à l'origine des exceptions "OutOfMemory" pour les fichiers image volumineux.
  • Définition des paramètres régionaux par défaut sur US.
  • Remplacement de l'ajout de ".tmp" par un préfixe lors de la création de fichiers temporaires.

Version 1.3.0-alpha01

19 février 2020

Publication d'androidx.exifinterface:exifinterface:1.3.0-alpha01. Liste des commits de la version 1.3.0-alpha01

Modifications apportées à l'API

  • Ajout d'une nouvelle méthode : ExifInterface.getGpsDateTime()

Version 1.2.0

Version 1.2.0

1er avril 2020

Publication d'androidx.exifinterface:exifinterface:1.2.0. Liste des commits de la version 1.2.0

Principales modifications depuis la version 1.1.0

  • Ajout de la prise en charge de l'ajout de l'affichage EXIF aux fichiers PNG.
  • Ajout de la prise en charge des fichiers WebP et de la transmission des données d'affichage EXIF uniquement.
  • Ajout d'une API permettant de vérifier si le type MIME spécifié est compatible.
  • Ajout de balises supplémentaires pour le délai de décalage : TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED et TAG_OFFSET_TIME_ORIGINAL.

Version 1.2.0-rc01

19 février 2020

Publication d'androidx.exifinterface:exifinterface:1.2.0-rc01. Liste des commits de la version 1.2.0-rc01

Correction de bugs

  • Correction d'un problème provoquant l'enregistrement incorrect des fichiers JPEG lorsqu'ils contenaient des données XMP.

Version 1.2.0-beta01

18 décembre 2019

Publication d'androidx.exifinterface:exifinterface:1.2.0-beta01. Liste des commits de la version 1.2.0-beta01

Nouvelles fonctionnalités

  • Ajout de la prise en charge de l'ajout de l'affichage EXIF aux fichiers PNG.
  • Ajout de la prise en charge de la lecture et de l'écriture de l'affichage EXIF à partir de fichiers WebP.
  • Ajout de la prise en charge de la transmission des données d'affichage EXIF uniquement.

Modifications apportées à l'API

  • Ajout d'une API permettant de vérifier si le type MIME spécifié est compatible.
  • Exposition des balises "OffsetTime*" de lecture et d'écriture.

Correction de bugs

  • Correction d'un problème qui renvoyait les décalages incorrects pour getAttributeRange().

Version 1.1.0

Version 1.1.0

20 novembre 2019

Publication d'androidx.exifinterface:exifinterface:1.1.0. Liste des commits de la version 1.1.0.

Changements importants depuis la version 1.0.0

  • Prise en charge du format HEIF et d'autres balises XMP.
  • Ajout de la prise en charge de la construction d'un objet ExifInterface à partir d'un File ou d'un FileDescriptor.
  • Ajout de méthodes supplémentaires pour obtenir les attributs hasAttribute, getAttributeBytes et getAttributesRange.

Version 1.1.0-rc01

9 octobre 2019

Publication d'androidx.exifinterface:exifinterface:1.1.0-rc01. Liste des commits de la version 1.1.0-rc01

Correction de bugs

  • Ajout d'un nom de format (IFD) manquant pour éviter une ArrayIndexOutOfBoundsException sur loadAttributes.
  • Prévention de la suppression du fichier d'origine lorsqu'une exception se produit lors de l'appel de saveAttributes.
  • Correction d'un problème d'exception survenant lors d'un appel de saveAttributes() après l'écrasement d'un fichier.

Version 1.1.0-beta01

2 juillet 2019

Publication d'androidx.exifinterface:exifinterface:1.1.0-beta01. Les commits inclus dans cette version sont disponibles sur cette page.

Nouvelles fonctionnalités

  • NullPointerException est renvoyé lorsque null est défini pour les arguments @NonNull.
  • Prise en charge des balises XMP.

Modifications apportées à l'API

  • Ajout de méthodes supplémentaires pour obtenir des informations sur les attributs :
  • hasAttribute, getAttributeBytes et getAttributesRange.

Correction de bugs

  • Prévention de la fuite de mémoire du descripteur de fichier.

Version 1.1.0-alpha01

13 mars 2019

Publication d'androidx.exifinterface:exifinterface:1.1.0-alpha01. La liste complète des commits inclus dans cette version est disponible sur cette page.

Nouvelles fonctionnalités

  • Prise en charge du format HEIF.

Modifications apportées à l'API

  • Ajout de constructeurs supplémentaires d'ExifInterface.
  • Correction d'une faute de frappe : TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME.

Correction de bugs

  • Correction de la vérification d'un éventuel dépassement de l'image de la miniature. (aosp/748608)