Exifinterface

EXIF-Tags von Bilddateien lesen und schreiben.
Letzte Aktualisierung Stabile Version Releasekandidat Betarelease Alpha-Release
3. Dezember 2025 1.4.2 - - -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Exifinterface hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Cool

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

Kotlin

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

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem stimmen, indem Sie auf den Button mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.4

Version 1.4.2

3. Dezember 2025

androidx.exifinterface:exifinterface:1.4.2 ist veröffentlicht. Version 1.4.2 enthält diese Commits.

Fehlerkorrekturen

  • Unterstützung für das Parsen von JPEGs mit zusätzlichen (zulässigen) 0xFF-Bytes vor einem Marker.

Version 1.4.1

23. April 2025

androidx.exifinterface:exifinterface:1.4.1 ist veröffentlicht. Version 1.4.1 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem das Übergeben von „null“ an setAttribute für TAG_XMP eine Ausnahme ausgelöst hat.

Version 1.4.0

26. Februar 2025

androidx.exifinterface:exifinterface:1.4.0 ist veröffentlicht. Version 1.4.0 enthält diese Commits.

Version 1.4.0-rc01

29. Januar 2025

androidx.exifinterface:exifinterface:1.4.0-rc01 wird ohne Änderungen seit Beta01 veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Version 1.4.0-beta01

15. Januar 2025

androidx.exifinterface:exifinterface:1.4.0-beta01 ist veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

API-Änderungen

  • Die HEIC-XMP-Verarbeitung wurde aktualisiert, sodass XMP-Daten aus einem separaten Segment in der Datei und nicht Tag 700 in den Exif-Daten bevorzugt werden.

Fehlerkorrekturen

  • Die ExifInterface.getThumbnail*()-Methode funktioniert jetzt nach einem Aufruf von saveAttributes() korrekt. Zuvor waren die Aufrufe erfolgreich, das Ergebnis war jedoch falsch oder nicht definiert.
  • Die PNG-XMP-Verarbeitung wurde korrigiert, sodass der separate iTXt-XMP-Chunk anstelle von Tag 700 im eXIf-Chunk gelesen und geschrieben wird.
  • Es wurde ein Problem behoben, bei dem WebP-Bilder beschädigt wurden, wenn Bilddateien mit nachfolgenden Nicht-WebP-Daten verarbeitet wurden. (b/385766064).

Version 1.4.0-alpha01

13. November 2024

androidx.exifinterface:exifinterface:1.4.0-alpha01 ist veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.

Neue Funktionen

  • Unterstützung für das Lesen von XMP-Daten aus HEIF-Bildern hinzugefügt.
  • Unterstützung für das Lesen von Exif- und XMP-Daten aus AVIF-Bildern hinzugefügt.

API-Änderungen

  • Geben Sie an, dass der location-Parameter für setGpsInfo @Nullable ist und dass das Übergeben von null zu einem No-Op führt. (If924c, b/236484611)

Fehlerkorrekturen

  • Die Verarbeitung wird fortgesetzt, nachdem ein ungültiger IFD-Offset erkannt wurde (b/264729367).
  • WebP-Bilder, die vor ihren Exif-Daten fälschlicherweise eine JPEG-APP1-Markierung enthalten, werden jetzt richtig verarbeitet (b/281638358).
  • Sorgen Sie dafür, dass XMP-Änderungen in JPEGs mit einem separaten XMP-Segment von saveAttributes() im selben separaten XMP-Segment gespeichert werden, anstatt in das TIFF-/Exif-Tag 700 geschrieben zu werden, das von der XMP-Spezifikation nicht unterstützt wird und in dem viele Tools sie nicht finden.
  • Beim Speichern wird verhindert, dass XMP-Daten aus einem separaten Segment in das TIFF-Vorschaubildverzeichnis kopiert werden (b/309843390).
  • Die Genauigkeit von Double- zu Rational-Konvertierungen wird verbessert. (b/312680558).
  • Akzeptiert das rationale Format (x/y) für setAttribute für „Legacy“-Tags im rationalen Format, die automatisch in Dezimalzahlen umgewandelt werden, wenn sie von getAttribute zurückgegeben werden (b/312680558).
  • XMP-Daten, die einem JPEG-Bild ohne XMP hinzugefügt werden, müssen in einem separaten Segment geschrieben werden, wie in der XMP-Spezifikation angegeben. ExifInterface bevorzugt das XMP-Tag im Exif-Tag 700 in JPEG-Bildern (Verstoß gegen die Spezifikation). Dieses Verhalten wird beim Lesen/Schreiben von Bildern mit vorhandenen XMP-Daten beibehalten.
  • Es wurde ein Fehler behoben, der zu beschädigten Ausgaben beim Schreiben von WebP-Bildern mit einer Höhe oder Breite von mehr als 8.191 Pixeln geführt hat (b/342697059).
  • In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict (dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (I5cd0f, b/326456246)
  • Die manuelle Beschreibung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies automatisch über die API-Modellierung erfolgt, wenn R8 mit AGP 7.3 oder höher verwendet wird (z. B. R8-Version 3.3), und für alle Builds, wenn AGP 8.1 oder höher verwendet wird (z. B. D8-Version 8.1). Clients, die AGP nicht verwenden, wird empfohlen, auf D8-Version 8.1 oder höher zu aktualisieren. Weitere Details finden Sie in diesem Artikel. (If6b4c, b/345472586)

Version 1.3.7

Version 1.3.7

13. Dezember 2023

androidx.exifinterface:exifinterface:1.3.7 ist veröffentlicht. Version 1.3.7 enthält diese Commits.

Fehlerkorrekturen

  • Es wird eine Ausnahme von ExifInterface.saveAttributes() ausgelöst, wenn versucht wird, ein JPEG-APP1-Segment zu schreiben, das zu groß ist. Zuvor wurde ein ungültiges APP1-Segment mit einer falschen, abgeschnittenen Länge geschrieben (b/263747161). Die Verarbeitung wird fortgesetzt, nachdem ein ungültiger IFD-Offset gefunden wurde. Bisher wurde die Verarbeitung sofort beendet, was dazu führen konnte, dass falsche Werte zurückgegeben wurden (b/264729367).

Version 1.3.6

Version 1.3.6

8. Februar 2023

androidx.exifinterface:exifinterface:1.3.6 ist veröffentlicht. Version 1.3.6 enthält diese Commits.

Fehlerkorrekturen

  • Das Lesen des Alphabits aus WebP-VP8L-Chunks wurde korrigiert (b/255405635).

Version 1.3.5

Version 1.3.5

24. Oktober 2022

androidx.exifinterface:exifinterface:1.3.5 ist veröffentlicht. Version 1.3.5 enthält diese Commits.

Fehlerkorrekturen

  • Es wurden zwei Fälle behoben, in denen saveAttributes() ungültige WebP-Dateien erzeugt hat.

Version 1.3.4

Version 1.3.4

5. Oktober 2022

androidx.exifinterface:exifinterface:1.3.4 ist veröffentlicht. Version 1.3.4 enthält diese Commits.

Fehlerkorrekturen

  • Unterstützung für das Speichern von Attributen in DNG-Dateien entfernt. Die in Version 1.3.3 hinzugefügte Unterstützung war unvollständig und führte zu beschädigten Dateien.

Version 1.3.3

Version 1.3.3

4. August 2021

androidx.exifinterface:exifinterface:1.3.3 ist veröffentlicht. Version 1.3.3 enthält diese Commits.

Fehlerkorrekturen

  • Das Parsen von Tags im Zusammenhang mit Unterabschnitten wurde korrigiert. (aosp/1508143)
  • RuntimeException beim Aufrufen von setDataSource verhindern. (c8e66e9)
  • Verhindern, dass skipBytes in einer Endlosschleife ausgeführt wird. (fdbe88b)
  • RuntimeException von MediaMetadataRetriever abfangen. (389b21a)
  • Unterstützung für das Speichern von Attributen für DNG-Dateien hinzugefügt (3017dbc)
  • Ersetzen Sie Tags, die keine Miniaturansichten sind, durch Miniaturansicht-Tags. (e1b916d)

Version 1.3.2

Version 1.3.2

2. Dezember 2020

androidx.exifinterface:exifinterface:1.3.2 ist veröffentlicht. Version 1.3.2 enthält diese Commits.

Fehlerkorrekturen

  • Ermöglicht SRATIONAL für GPS_LATITUDE und GPS_LONGITUDE.
  • Unterstützung für das Lesen/Schreiben eines sekundären Formats (2020-01-01 00:00:00) des DateTime-Tags hinzugefügt.
  • Verhindert das vorübergehende Entfernen der Quelldatei beim Aufrufen von saveAttribute().

Version 1.3.1

Version 1.3.1

14. Oktober 2020

androidx.exifinterface:exifinterface:1.3.1 ist veröffentlicht. Version 1.3.1 enthält diese Commits.

Fehlerkorrekturen

  • Die Implementierung von „saveAttributes“ wurde korrigiert, damit die Bilddaten in MediaProvider erhalten bleiben.

Version 1.3.0

Version 1.3.0

16. September 2020

androidx.exifinterface:exifinterface:1.3.0 ist veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

  • Die Unterstützung für das Schreiben von WebP-EXIF-Daten wurde auf Dateien ausgeweitet, die nur VP8- oder VP8L-Chunks enthalten.
  • Unnötiges Puffern wurde entfernt, das bei großen Bilddateien zu OutOfMemory-Ausnahmen geführt hat.
  • INVALID_DATE_TIME wurde entfernt. Verwenden Sie stattdessen NULL, um ungültige Datums- und Zeitwerte zurückzugeben.
  • getGpsDateTime gibt jetzt Long.MIN_VALUE anstelle von -1 für einen ungültigen Wert zurück.

Version 1.3.0-rc01

2. September 2020

androidx.exifinterface:exifinterface:1.3.0-rc01 wird ohne Änderungen seit 1.3.0-beta01 veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta01

19. August 2020

androidx.exifinterface:exifinterface:1.3.0-beta01 ist veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.

Neue Funktionen

  • Die Unterstützung für das Schreiben von WebP-EXIF-Daten wurde auf Dateien ausgeweitet, die nur VP8- oder VP8L-Chunks enthalten.

API-Änderungen

  • INVALID_DATE_TIME wurde entfernt. Verwenden Sie stattdessen NULL, um einen ungültigen Datums-/Uhrzeitwert zurückzugeben.

Fehlerkorrekturen

  • getGpsDateTime gibt jetzt Long.MIN_VALUE anstelle von -1 zurück, da -1 ein gültiger Wert ist.
  • Bei DateTime-bezogenen Gettern wird der Offsetwert (+/-) des Datumsstrings berücksichtigt.
  • Unnötiges Puffern wurde entfernt, das bei großen Bilddateien zu OutOfMemory-Ausnahmen geführt hat.
  • Standardsprache auf Englisch (USA) festlegen
  • Das Hinzufügen von „.tmp“ zum Erstellen temporärer Dateien wurde durch das Hinzufügen eines Präfixes ersetzt.

Version 1.3.0-alpha01

19. Februar 2020

androidx.exifinterface:exifinterface:1.3.0-alpha01 ist veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

API-Änderungen

  • Eine neue Methode wurde hinzugefügt: ExifInterface.getGpsDateTime()

Version 1.2.0

Version 1.2.0

1. April 2020

androidx.exifinterface:exifinterface:1.2.0 ist veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Unterstützung für das Hinzufügen von EXIF-Daten zu PNG-Dateien hinzugefügt
  • Unterstützung für WebP-Dateien und EXIF-Datenstream hinzugefügt
  • Eine API wurde hinzugefügt, um zu prüfen, ob der angegebene MIME-Typ unterstützt wird.
  • Es wurden weitere Tags für die Offset-Zeit hinzugefügt: TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED und TAG_OFFSET_TIME_ORIGINAL.

Version 1.2.0-rc01

19. Februar 2020

androidx.exifinterface:exifinterface:1.2.0-rc01 ist veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem JPEG-Dateien falsch gespeichert wurden, wenn sie XMP-Daten enthielten.

Version 1.2.0-beta01

18. Dezember 2019

androidx.exifinterface:exifinterface:1.2.0-beta01 ist veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Unterstützung für das Hinzufügen von EXIF-Daten zu PNG-Dateien hinzugefügt
  • Unterstützung für das Lesen und Schreiben von EXIF-Daten aus WebP-Dateien hinzugefügt
  • Unterstützung für einen Stream nur mit EXIF-Daten hinzugefügt

API-Änderungen

  • Eine API wurde hinzugefügt, um zu prüfen, ob der angegebene MIME-Typ unterstützt wird.
  • Die OffsetTime*-Tags für Lese- und Schreibvorgänge wurden verfügbar gemacht.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem für getAttributeRange() die falschen Offsets zurückgegeben wurden.

Version 1.1.0

Version 1.1.0

20. November 2019

androidx.exifinterface:exifinterface:1.1.0 ist veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

  • Unterstützung für das HEIF-Format und weitere XMP-Tags
  • Unterstützung für das Erstellen eines ExifInterface-Objekts aus einem File oder FileDescriptor wurde hinzugefügt.
  • Es wurden weitere Methoden zum Abrufen von Attributen hinzugefügt: hasAttribute, getAttributeBytes und getAttributesRange.

Version 1.1.0-rc01

9. Oktober 2019

androidx.exifinterface:exifinterface:1.1.0-rc01 ist veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Fehlerkorrekturen

  • Ein fehlender Formatname (IFD) wurde hinzugefügt, um einen ArrayIndexOutOfBoundsException auf loadAttributes zu verhindern.
  • Das Löschen der Quelldatei wird verhindert, wenn beim Aufrufen von saveAttributes eine Ausnahme auftritt.
  • Ein Ausnahme-Problem wurde behoben, das auftrat, wenn nach dem Überschreiben einer Datei ein Aufruf von saveAttributes() erfolgte.

Version 1.1.0-beta01

2. Juli 2019

androidx.exifinterface:exifinterface:1.1.0-beta01 ist veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • Löst NullPointerException aus, wenn null für @NonNull-Argumente festgelegt ist
  • Unterstützung für XMP-Tags

API-Änderungen

  • Weitere Methoden zum Abrufen von Attributinformationen hinzugefügt
  • hasAttribute, getAttributeBytes und getAttributesRange

Fehlerkorrekturen

  • Speicherleck für Dateideskriptoren verhindern

Version 1.1.0-alpha01

13. März 2019

androidx.exifinterface:exifinterface:1.1.0-alpha01 ist veröffentlicht. Eine vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • HEIF-Format unterstützen

API-Änderungen

  • Weitere Konstruktoren von ExifInterface hinzugefügt
  • Rechtschreibfehler korrigiert: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

Fehlerkorrekturen

  • Die Prüfung auf möglichen Überlauf für das Vorschaubild wurde korrigiert (aosp/748608).