Exifinterface

Leggi e scrivi i tag EXIF dei file immagine.
Ultimo aggiornamento Release stabile Candidato per la release Release beta Release alpha
3 dicembre 2025 1.4.2 - - -

Dichiara le dipendenze

Per aggiungere una dipendenza da Exifinterface, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per la tua app o il tuo modulo:

Alla moda

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

Kotlin

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

Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Crea un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.4

Versione 1.4.2

3 dicembre 2025

androidx.exifinterface:exifinterface:1.4.2 è stato rilasciato. La versione 1.4.2 contiene questi commit.

Correzioni di bug

  • Supporta l'analisi di JPEG con byte 0xFF aggiuntivi (consentiti) prima di qualsiasi marcatore.

Versione 1.4.1

23 aprile 2025

androidx.exifinterface:exifinterface:1.4.1 è stato rilasciato. La versione 1.4.1 contiene questi commit.

Correzioni di bug

  • È stato corretto il bug per cui il passaggio di un valore nullo a setAttribute per TAG_XMP generava un'eccezione.

Versione 1.4.0

26 febbraio 2025

androidx.exifinterface:exifinterface:1.4.0 è stato rilasciato. La versione 1.4.0 contiene questi commit.

Versione 1.4.0-rc01

29 gennaio 2025

androidx.exifinterface:exifinterface:1.4.0-rc01 viene rilasciato senza modifiche rispetto alla versione beta01. La versione 1.4.0-rc01 contiene questi commit.

Versione 1.4.0-beta01

15 gennaio 2025

androidx.exifinterface:exifinterface:1.4.0-beta01 è stato rilasciato. La versione 1.4.0-beta01 contiene questi commit.

Modifiche alle API

  • Aggiorna la gestione XMP HEIC in modo da preferire i dati XMP di un segmento separato nel file anziché il tag 700 nei dati Exif.

Correzioni di bug

  • Correzione del metodo ExifInterface.getThumbnail*() per funzionare correttamente dopo una chiamata a saveAttributes() (in precedenza le chiamate riuscivano, ma il risultato era errato/indefinito)
  • Correzione della gestione XMP PNG per leggere e scrivere il blocco XMP iTXt separato anziché il tag 700 all'interno del blocco eXIf.
  • È stato corretto il problema di danneggiamento delle immagini WebP durante la gestione di file immagine con dati non WebP finali. (b/385766064).

Versione 1.4.0-alpha01

13 novembre 2024

androidx.exifinterface:exifinterface:1.4.0-alpha01 è stato rilasciato. La versione 1.4.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Aggiungi il supporto per la lettura dei dati XMP dalle immagini HEIF.
  • Aggiungi il supporto per la lettura di Exif e XMP dalle immagini AVIF.

Modifiche alle API

  • Indica che il parametro location per setGpsInfo è @Nullable e che il passaggio di null comporterà un'operazione nulla. (If924c, b/236484611)

Correzioni di bug

  • Continua l'analisi dopo aver riscontrato un offset IFD non valido (b/264729367).
  • Gestisci le immagini WebP che contengono erroneamente un marcatore JPEG APP1 prima dei dati Exif (b/281638358).
  • Assicurati che le modifiche XMP nei JPEG con un segmento XMP separato vengano archiviate nello stesso segmento XMP separato da saveAttributes(), anziché essere scritte nel tag TIFF/Exif 700, che non è supportato dalla specifica XMP e in cui molti strumenti non le troveranno.
  • Evita di duplicare i dati XMP da un segmento separato nella directory di anteprima TIFF durante il salvataggio (b/309843390).
  • Migliora la precisione delle conversioni da double a rational. (b/312680558).
  • Accetta il formato razionale (x/y) per setAttribute per i tag razionali "legacy" che vengono convertiti automaticamente in decimali quando vengono restituiti da getAttribute (b/312680558).
  • Assicurati che i dati XMP aggiunti a un'immagine JPEG che non contiene già XMP vengano scritti in un segmento separato, come specificato dalla specifica XMP. È documentato che ExifInterface preferisce l'XMP nel tag Exif 700 nelle immagini JPEG (violando la specifica), quindi questo comportamento viene mantenuto durante la lettura/scrittura di immagini con dati XMP esistenti.
  • È stato corretto l'output danneggiato durante la scrittura di immagini WebP con un'altezza o una larghezza superiore a 8191 px (b/342697059).
  • Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per imporre l'utilizzo corretto: -Xjspecify-annotations=strict (questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin). (I5cd0f, b/326456246)
  • È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché questa operazione viene eseguita automaticamente tramite la modellazione delle API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I client che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (If6b4c, b/345472586)

Versione 1.3.7

Versione 1.3.7

13 dicembre 2023

androidx.exifinterface:exifinterface:1.3.7 è stato rilasciato. La versione 1.3.7 contiene questi commit.

Correzioni di bug

  • Genera un'eccezione da ExifInterface.saveAttributes() quando si tenta di scrivere un segmento JPEG APP1 troppo grande (in precedenza veniva scritto un segmento APP1 non valido con una lunghezza errata e troncata:(b/263747161)). Continua l'analisi dopo aver riscontrato un offset IFD non valido (in precedenza l'analisi si interrompeva immediatamente, il che poteva comportare la restituzione di valori errati: (b/264729367)).

Versione 1.3.6

Versione 1.3.6

8 febbraio 2023

androidx.exifinterface:exifinterface:1.3.6 è stato rilasciato. La versione 1.3.6 contiene questi commit.

Correzioni di bug

  • È stata corretta la lettura del bit alfa dai blocchi WebP VP8L (b/255405635).

Versione 1.3.5

Versione 1.3.5

24 ottobre 2022

androidx.exifinterface:exifinterface:1.3.5 è stato rilasciato. La versione 1.3.5 contiene questi commit.

Correzioni di bug

  • Correzione di due casi di saveAttributes() che producono file WebP non validi.

Versione 1.3.4

Versione 1.3.4

5 ottobre 2022

androidx.exifinterface:exifinterface:1.3.4 è stato rilasciato. La versione 1.3.4 contiene questi commit.

Correzioni di bug

  • Rimozione del supporto per il salvataggio degli attributi nei file DNG. Il supporto aggiunto nella versione 1.3.3 era incompleto e produceva file danneggiati.

Versione 1.3.3

Versione 1.3.3

4 agosto 2021

androidx.exifinterface:exifinterface:1.3.3 è stato rilasciato. La versione 1.3.3 contiene questi commit.

Correzioni di bug

  • Correggi l'analisi dei tag correlati alle sezioni secondarie. (aosp/1508143)
  • Evita RuntimeException quando chiami setDataSource. (c8e66e9)
  • Impedisce a skipBytes di entrare in un loop infinito. (fdbe88b)
  • Rileva RuntimeException da MediaMetadataRetriever. (389b21a)
  • Aggiungi il supporto per il salvataggio degli attributi per i file DNG (3017dbc)
  • Sostituisci i tag non in miniatura con i tag in miniatura. (e1b916d)

Versione 1.3.2

Versione 1.3.2

2 dicembre 2020

androidx.exifinterface:exifinterface:1.3.2 è stato rilasciato. La versione 1.3.2 contiene questi commit.

Correzioni di bug

  • Consente SRATIONAL per GPS_LATITUDE e GPS_LONGITUDE.
  • È stato aggiunto il supporto per la lettura/scrittura di un formato secondario (2020-01-01 00:00:00) del tag DateTime.
  • È stata impedita la rimozione temporanea del file di origine durante la chiamata a saveAttribute().

Versione 1.3.1

Versione 1.3.1

14 ottobre 2020

androidx.exifinterface:exifinterface:1.3.1 è stato rilasciato. La versione 1.3.1 contiene questi commit.

Correzioni di bug

  • Correggi l'implementazione di saveAttributes per conservare i dati delle immagini in MediaProvider

Versione 1.3.0

Versione 1.3.0

16 settembre 2020

androidx.exifinterface:exifinterface:1.3.0 è stato rilasciato. La versione 1.3.0 contiene questi commit.

Modifiche principali dalla versione 1.2.0

  • Supporto esteso della scrittura EXIF WebP per includere i file che contengono solo blocchi VP8 o VP8L.
  • È stato rimosso il buffering non necessario, che causava eccezioni OutOfMemory per i file immagine di grandi dimensioni.
  • INVALID_DATE_TIME rimosso. Utilizza invece NULL per restituire valori datetime non validi.
  • È stato modificato il valore restituito da getGpsDateTime, che ora restituisce Long.MIN_VALUE anziché -1 per un valore non valido.

Versione 1.3.0-rc01

2 settembre 2020

androidx.exifinterface:exifinterface:1.3.0-rc01 viene rilasciato senza modifiche dal giorno 1.3.0-beta01. La versione 1.3.0-rc01 contiene questi commit.

Versione 1.3.0-beta01

19 agosto 2020

androidx.exifinterface:exifinterface:1.3.0-beta01 è stato rilasciato. La versione 1.3.0-beta01 contiene questi commit.

Nuove funzionalità

  • Supporto esteso della scrittura EXIF WebP per includere i file che contengono solo blocchi VP8 o VP8L.

Modifiche alle API

  • INVALID_DATE_TIME rimosso. Utilizza invece NULL per restituire un valore datetime non valido.

Correzioni di bug

  • getGpsDateTime ha restituito Long.MIN_VALUE anziché -1 perché -1 è un valore valido
  • Sono stati modificati i getter correlati a DateTime per considerare il valore di offset (+/-) della stringa di data.
  • È stato rimosso il buffering non necessario, che causava eccezioni OutOfMemory per i file immagine di grandi dimensioni.
  • Imposta le impostazioni internazionali predefinite su Stati Uniti
  • È stata sostituita l'aggiunta di ".tmp" per la creazione di file temporanei con l'aggiunta di un prefisso.

Versione 1.3.0-alpha01

19 febbraio 2020

androidx.exifinterface:exifinterface:1.3.0-alpha01 è stato rilasciato. La versione 1.3.0-alpha01 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un nuovo metodo: ExifInterface.getGpsDateTime()

Versione 1.2.0

Versione 1.2.0

1° aprile 2020

androidx.exifinterface:exifinterface:1.2.0 è stato rilasciato. La versione 1.2.0 contiene questi commit.

Modifiche principali dalla versione 1.1.0

  • È stato aggiunto il supporto per l'aggiunta di EXIF ai file PNG
  • Aggiunto il supporto per i file WebP e lo stream solo dati EXIF
  • È stata aggiunta un'API per verificare se il tipo MIME specificato è supportato
  • Sono stati aggiunti altri tag per l'ora di compensazione: TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED e TAG_OFFSET_TIME_ORIGINAL

Versione 1.2.0-rc01

19 febbraio 2020

androidx.exifinterface:exifinterface:1.2.0-rc01 è stato rilasciato. La versione 1.2.0-rc01 contiene questi commit.

Correzioni di bug

  • Risolto un problema per cui i file JPEG venivano salvati in modo errato se contenevano dati XMP

Versione 1.2.0-beta01

18 dicembre 2019

androidx.exifinterface:exifinterface:1.2.0-beta01 è stato rilasciato. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per l'aggiunta di EXIF ai file PNG
  • È stato aggiunto il supporto per la lettura e la scrittura di EXIF dai file WebP
  • Aggiunto il supporto per uno stream solo di dati EXIF

Modifiche API

  • È stata aggiunta un'API per verificare se il tipo MIME specificato è supportato
  • Sono stati esposti i tag OffsetTime* di lettura e scrittura

Correzioni di bug

  • Risolto un problema per cui venivano restituiti offset errati per getAttributeRange()

Versione 1.1.0

Versione 1.1.0

20 novembre 2019

androidx.exifinterface:exifinterface:1.1.0 è stato rilasciato. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Supporto del formato HEIF e di altri tag XMP
  • Aggiunto il supporto per la creazione di un oggetto ExifInterface da un oggetto File o FileDescriptor
  • Aggiunti altri metodi per ottenere l'attributo: hasAttribute, getAttributeBytes e getAttributesRange

Versione 1.1.0-rc01

9 ottobre 2019

androidx.exifinterface:exifinterface:1.1.0-rc01 è stato rilasciato. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato aggiunto un nome di formato mancante (IFD) per evitare un ArrayIndexOutOfBoundsException su loadAttributes
  • Impedisce l'eliminazione del file di origine quando si verifica un'eccezione durante la chiamata di saveAttributes
  • È stato risolto un problema di eccezione quando viene chiamata la funzione saveAttributes() dopo la sovrascrittura di un file.

Versione 1.1.0-beta01

2 luglio 2019

androidx.exifinterface:exifinterface:1.1.0-beta01 è stato rilasciato. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • Genera NullPointerException quando null è impostato per gli argomenti @NonNull
  • Supporto per i tag XMP

Modifiche API

  • Aggiunti altri metodi per ottenere informazioni sugli attributi
  • hasAttribute, getAttributeBytes e getAttributesRange

Correzioni di bug

  • Evitare la perdita di memoria del descrittore di file

Versione 1.1.0-alpha01

13 marzo 2019

androidx.exifinterface:exifinterface:1.1.0-alpha01 è stato rilasciato. L'elenco completo dei commit inclusi in questa versione è disponibile qui.

Nuove funzionalità

  • Supporto del formato HEIF

Modifiche API

  • Sono stati aggiunti altri costruttori di ExifInterface
  • Correzione errore di battitura: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

Correzioni di bug

  • È stato corretto il controllo del possibile overflow per l'immagine in miniatura (aosp/748608).