Exifinterface

Leggere e scrivere i tag EXIF dei file immagine.
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Versione alpha
13 novembre 2024 1.3.7 - - 1.4.0-alpha01

Dichiarazione delle dipendenze

Per aggiungere una dipendenza da Exifinterface, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

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

Groovy

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

Kotlin

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

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, 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.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Versione 1.4

Versione 1.4.0-alpha01

13 novembre 2024

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

Nuove funzionalità

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

Modifiche all'API

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

Correzioni di bug

  • Continua l'analisi dopo aver rilevato un offset IFD non valido (b/264729367).
  • Gestire le immagini WebP che contengono erroneamente un indicatore JPEG APP1 prima dei dati Exif (b/281638358).
  • Assicurati che le modifiche XMP nei file JPEG con un segmento XMP separato vengano memorizzate nello stesso segmento XMP separato da saveAttributes(), anziché essere scritte nel tag TIFF/Exif 700, che non è supportato dalla specifica XMP e dove molti strumenti non le troveranno.
  • Evita di duplicare i dati XMP di un segmento separato nella directory di anteprima TIFF durante il salvataggio (b/309843390).
  • Migliora la precisione delle conversioni da doppie a razionali. (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 li contiene già 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 delle immagini con dati XMP esistenti.
  • Correggere l'output danneggiato durante la scrittura di immagini WebP con altezza o larghezza superiore a 8191 pixel (b/342697059).
  • Questa libreria ora utilizza le annotazioni di nullità JSpecify, che sono di tipo di utilizzo. Gli sviluppatori Kotlin devono utilizzare i seguenti argomenti del compilatore per applicare l'utilizzo corretto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0f, b/326456246)
  • È stato rimosso il riepilogo manuale dell'accesso alle nuove API di piattaforma, poiché questo avviene automaticamente tramite la definizione del modello 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 clienti 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 viene rilasciato. La versione 1.3.7 contiene questi commit.

Correzioni di bug

  • Viene lanciata 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 troncata errata:(b/263747161)). Continuare l'analisi dopo aver rilevato un offset IFD non valido (in precedenza l'analisi si interrompeva immediatamente, il che poteva comportare il ritorno di valori errati: (b/264729367)).

Versione 1.3.6

Versione 1.3.6

8 febbraio 2023

androidx.exifinterface:exifinterface:1.3.6 viene rilasciato. La versione 1.3.6 contiene questi commit.

Correzioni di bug

  • Correzione della lettura del bit alpha dai chunk WebP VP8L (b/255405635).

Versione 1.3.5

Versione 1.3.5

24 ottobre 2022

androidx.exifinterface:exifinterface:1.3.5 viene rilasciato. La versione 1.3.5 contiene questi commit.

Correzioni di bug

  • Sono stati corretti due casi in cui saveAttributes() produceva file WebP non validi.

Versione 1.3.4

Versione 1.3.4

5 ottobre 2022

androidx.exifinterface:exifinterface:1.3.4 viene rilasciato. La versione 1.3.4 contiene questi commit.

Correzioni di bug

  • È stato rimosso il 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 viene rilasciato. La versione 1.3.3 contiene questi commit.

Correzioni di bug

  • Correggere l'analisi dei tag relativi alle sezioni secondarie. (aosp/1508143)
  • Impedisci RuntimeException quando chiami setDataSource. (c8e66e9)
  • Impedisci a skipBytes di eseguire un ciclo infinito. (fdbe88b)
  • Cattura RuntimeException da MediaMetadataRetriever. (389b21a)
  • Aggiunta del 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 viene 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 (01-01-2020 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 viene rilasciato. La versione 1.3.1 contiene questi commit.

Correzioni di bug

  • Correggere l'implementazione di saveAttributes per mantenere i dati delle immagini in MediaProvider

Versione 1.3.0

Versione 1.3.0

16 settembre 2020

androidx.exifinterface:exifinterface:1.3.0 viene rilasciato. La versione 1.3.0 contiene questi commit.

Modifiche principali dalla versione 1.2.0

  • È stato esteso il supporto della scrittura EXIF WebP per includere i file che contengono solo chunk VP8 o VP8L.
  • È stato rimosso il buffering non necessario, che causava eccezioni OutOfMemory per file di immagini di grandi dimensioni.
  • INVALID_DATE_TIME rimosso. Utilizza invece NULL per restituire valori data/ora non validi.
  • È stato modificato getGpsDateTime in modo che restituisca 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 viene rilasciato. La versione 1.3.0-beta01 contiene questi commit.

Nuove funzionalità

  • È stato esteso il supporto della scrittura EXIF WebP per includere i file che contengono solo chunk VP8 o VP8L.

Modifiche all'API

  • INVALID_DATE_TIME rimosso. Utilizza invece NULL per restituire un valore data/ora non valido.

Correzioni di bug

  • Ho modificato getGpsDateTime in modo che restituisca Long.MIN_VALUE anziché -1 perché -1 è un valore valido
  • I getter relativi a DateTime ora prendono in considerazione il valore dell'offset (+/-) della stringa della data.
  • È stato rimosso il buffering non necessario, che causava eccezioni OutOfMemory per file di immagini di grandi dimensioni.
  • Impostare 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 viene rilasciato. La versione 1.3.0-alpha01 contiene questi commit.

Modifiche all'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 viene 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
  • È stato aggiunto il supporto per i file WebP e per lo stream di soli dati EXIF
  • È stata aggiunta un'API per verificare se il tipo MIME specificato è supportato
  • Sono stati aggiunti altri tag per l'ora di offset: 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 viene rilasciato. La versione 1.2.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato 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 viene 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
  • È stato aggiunto il supporto per uno stream di soli dati EXIF

Modifiche all'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 viene rilasciato. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Supporto per il formato HEIF e altri tag XMP
  • È stato aggiunto il supporto per la creazione di un oggetto ExifInterface da un File o un FileDescriptor
  • Sono stati 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 viene 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 in loadAttributes
  • È stata impedita l'eliminazione del file di origine quando si verifica un'eccezione durante la chiamata a saveAttributes
  • È stato risolto un problema di eccezione quando viene eseguita una chiamata a saveAttributes() dopo la sovrascrittura di un file.

Versione 1.1.0-beta01

2 luglio 2019

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

Nuove funzionalità

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

Modifiche all'API

  • Sono stati aggiunti altri metodi per ottenere informazioni sugli attributi
  • hasAttribute, getAttributeBytes e getAttributesRange

Correzioni di bug

  • Evitare la perdita di memoria del descrittore file

Versione 1.1.0-alpha01

13 marzo 2019

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

Nuove funzionalità

  • Supporto del formato HEIF

Modifiche all'API

  • Sono stati aggiunti altri costruttori di ExifInterface
  • Errore ortografico corretto: 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)