Exifinterface
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa |
|---|---|---|---|---|
| 3 grudnia 2025 r. | 1.4.2 | - | - | - |
Deklarowanie zależności
Aby dodać zależność od interfejsu Exifinterface, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.exifinterface:exifinterface:1.4.2" }
Kotlin
dependencies { implementation("androidx.exifinterface:exifinterface:1.4.2") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.4
Wersja 1.4.2
3 grudnia 2025 r.
Publikacja androidx.exifinterface:exifinterface:1.4.2 Wersja 1.4.2 zawiera te zmiany.
Poprawki błędów
- Obsługa analizowania plików JPEG z dodatkowymi (dozwolonymi) bajtami 0xFF przed dowolnym znacznikiem.
Wersja 1.4.1
23 kwietnia 2025 r.
Publikacja androidx.exifinterface:exifinterface:1.4.1 Wersja 1.4.1 zawiera te zmiany.
Poprawki błędów
- Usunęliśmy błąd, który powodował, że przekazanie wartości null do parametru
setAttributew przypadku parametruTAG_XMPpowodowało zgłoszenie wyjątku.
Wersja 1.4.0
26 lutego 2025 r.
Publikacja androidx.exifinterface:exifinterface:1.4.0 Wersja 1.4.0 zawiera te zmiany.
Wersja 1.4.0-rc01
29 stycznia 2025 r.
androidx.exifinterface:exifinterface:1.4.0-rc01 została wydana bez zmian w porównaniu z wersją beta01. Wersja 1.4.0-rc01 zawiera te zmiany.
Wersja 1.4.0-beta01
15 stycznia 2025 r.
Publikacja androidx.exifinterface:exifinterface:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowano obsługę XMP w pliku HEIC, aby preferować dane XMP z osobnego segmentu w pliku zamiast tagu 700 w danych Exif.
Poprawki błędów
- Poprawienie działania metody
ExifInterface.getThumbnail*()po wywołaniu funkcjisaveAttributes()(wcześniej wywołania się powodziły, ale wynik był nieprawidłowy lub niezdefiniowany). - Poprawiono obsługę XMP w PNG, aby odczytywać i zapisywać oddzielny fragment iTXt XMP zamiast tagu 700 w fragmencie eXIf.
- Naprawienie problemu z uszkodzeniem obrazu
WebPpodczas obsługi plików graficznych z danymi innymi niż WebP na końcu. (b/385766064).
Wersja 1.4.0-alpha01
13 listopada 2024 r.
Publikacja androidx.exifinterface:exifinterface:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę odczytywania danych XMP z obrazów HEIF.
- Dodanie obsługi odczytywania danych Exif i XMP z obrazów AVIF.
Zmiany w interfejsie API
- Wskaż, że parametr
locationdlasetGpsInfoto@Nullable, a przekazanienullspowoduje brak działania. (If924c, b/236484611)
Poprawki błędów
- Kontynuowanie analizowania po napotkaniu nieprawidłowego przesunięcia IFD (b/264729367).
- Obsługa obrazów WebP, które nieprawidłowo zawierają znacznik JPEG APP1 przed danymi Exif (b/281638358).
- Upewnij się, że zmiany XMP w plikach JPEG z oddzielnym segmentem XMP są przechowywane w tym samym oddzielnym segmencie XMP przez
saveAttributes(), zamiast być zapisywane w tagu TIFF/Exif 700, który nie jest obsługiwany przez specyfikację XMP i w którym wiele narzędzi ich nie znajdzie. - Unikanie duplikowania danych XMP z osobnego segmentu w katalogu podglądu TIFF podczas zapisywania (b/309843390).
- Poprawiono precyzję konwersji liczb zmiennoprzecinkowych na liczby wymierne. (b/312680558).
- Akceptuj format ułamkowy (x/y) w przypadku „starszych” tagów ułamkowych, które są automatycznie konwertowane na format dziesiętny po zwróceniu z
getAttribute(b/312680558).setAttribute - Upewnij się, że dane XMP dodane do obrazu JPEG, który nie zawiera jeszcze danych XMP, są zapisywane w osobnym segmencie zgodnie ze specyfikacją XMP.
ExifInterfacepreferuje dane XMP w tagu Exif 700 w obrazach JPEG (co narusza specyfikację), więc to zachowanie jest zachowywane podczas odczytywania i zapisywania obrazów z istniejącymi danymi XMP. - Naprawiono uszkodzone dane wyjściowe podczas zapisywania obrazów WebP o wysokości lub szerokości większej niż 8191 pikseli (b/342697059).
- Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict(jest to domyślny argument począwszy od wersji 2.1.0 kompilatora Kotlin). (I5cd0f, b/326456246) - Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 w AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z AGP, zalecamy przejście na D8 w wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
Wersja 1.3.7
Wersja 1.3.7
13 grudnia 2023 r.
Publikacja androidx.exifinterface:exifinterface:1.3.7 Wersja 1.3.7 zawiera te zatwierdzenia.
Poprawki błędów
- Wyrzucanie wyjątku z
ExifInterface.saveAttributes()podczas próby zapisu zbyt dużego segmentu JPEG APP1 (wcześniej zapisywaliśmy nieprawidłowy segment APP1 z nieprawidłową, obciętą długością: b/263747161). Kontynuowanie analizowania po napotkaniu nieprawidłowego przesunięcia IFD (wcześniej analizowanie było natychmiast przerywane, co mogło powodować zwracanie nieprawidłowych wartości: b/264729367).
Wersja 1.3.6
Wersja 1.3.6
8 lutego 2023 r.
Publikacja androidx.exifinterface:exifinterface:1.3.6 Wersja 1.3.6 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiono odczytywanie bitu alfa z fragmentów WebP VP8L (b/255405635).
Wersja 1.3.5
Wersja 1.3.5
24 października 2022 r.
Publikacja androidx.exifinterface:exifinterface:1.3.5 Wersja 1.3.5 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono 2 przypadki, w których
saveAttributes()generował nieprawidłowe pliki WebP.
Wersja 1.3.4
Wersja 1.3.4
5 października 2022 r.
Publikacja androidx.exifinterface:exifinterface:1.3.4 Wersja 1.3.4 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięcie obsługi zapisywania atrybutów w plikach DNG. Obsługa dodana w wersji 1.3.3 była niekompletna i powodowała uszkodzenie plików.
Wersja 1.3.3
Wersja 1.3.3
4 sierpnia 2021 r.
Publikacja androidx.exifinterface:exifinterface:1.3.3 Wersja 1.3.3 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono analizowanie tagów związanych z podsekcjami. (aosp/1508143)
- Zapobiega wystąpieniu wyjątku RuntimeException podczas wywoływania metody setDataSource. (c8e66e9)
- Zapobiegaj nieskończonemu zapętlaniu skipBytes. (fdbe88b)
- Obsługa wyjątku RuntimeException z klasy MediaMetadataRetriever. (389b21a)
- Dodano obsługę zapisywania atrybutów w plikach DNG (3017dbc)
- Zastąp tagi bez miniatur tagami z miniaturami. (e1b916d)
Wersja 1.3.2
Wersja 1.3.2
2 grudnia 2020 r.
Publikacja androidx.exifinterface:exifinterface:1.3.2 Wersja 1.3.2 zawiera te zatwierdzenia.
Poprawki błędów
- Zezwala na
SRATIONALw przypadku usługGPS_LATITUDEiGPS_LONGITUDE. - Dodano obsługę odczytu i zapisu dodatkowego formatu (2020-01-01 00:00:00) tagu DateTime.
- Zapobieganie tymczasowemu usunięciu pliku źródłowego podczas wywoływania funkcji saveAttribute().
Wersja 1.3.1
Wersja 1.3.1
14 października 2020 r.
Publikacja androidx.exifinterface:exifinterface:1.3.1 Wersja 1.3.1 zawiera te zatwierdzenia.
Poprawki błędów
- Popraw implementację saveAttributes, aby zachować dane obrazu w MediaProvider
Wersja 1.3.0
Wersja 1.3.0
16 września 2020 roku
Publikacja androidx.exifinterface:exifinterface:1.3.0 Wersja 1.3.0 zawiera te zatwierdzenia.
Główne zmiany od wersji 1.2.0
- Rozszerzyliśmy obsługę zapisu EXIF w przypadku plików WebP, aby obejmowała pliki zawierające tylko fragmenty VP8 lub VP8L.
- Usunięto niepotrzebne buforowanie, które powodowało wyjątki OutOfMemory w przypadku dużych plików obrazów.
- Użytkownik
INVALID_DATE_TIMEzostał usunięty. Zamiast tego użyjNULL, aby zwracać nieprawidłowe wartości daty i godziny. - W przypadku nieprawidłowej wartości funkcja
getGpsDateTimezwracaLong.MIN_VALUEzamiast-1.
Wersja 1.3.0-rc01
2 września 2020 r.
androidx.exifinterface:exifinterface:1.3.0-rc01 została opublikowana bez zmian od 1.3.0-beta01. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Wersja 1.3.0-beta01
19 sierpnia 2020 r.
Publikacja androidx.exifinterface:exifinterface:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Rozszerzyliśmy obsługę zapisu EXIF w przypadku plików WebP, aby obejmowała pliki zawierające tylko fragmenty VP8 lub VP8L.
Zmiany w interfejsie API
- Użytkownik
INVALID_DATE_TIMEzostał usunięty. Zamiast tego użyjNULL, aby zwrócić nieprawidłową wartość daty i godziny.
Poprawki błędów
- Funkcja
getGpsDateTimezwraca wartośćLong.MIN_VALUEzamiast-1, ponieważ-1jest prawidłową wartością. - W przypadku funkcji pobierających powiązanych z datą i godziną uwzględniono wartość przesunięcia (+/-) ciągu znaków daty.
- Usunięto niepotrzebne buforowanie, które powodowało wyjątki OutOfMemory w przypadku dużych plików obrazów.
- Ustaw domyślny język na angielski (Stany Zjednoczone)
- Zastąpiono dodawanie „.tmp” podczas tworzenia plików tymczasowych dodawaniem prefiksu.
Wersja 1.3.0-alpha01
19 lutego 2020 r.
Publikacja androidx.exifinterface:exifinterface:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy nową metodę:
ExifInterface.getGpsDateTime()
Wersja 1.2.0
Wersja 1.2.0
1 kwietnia 2020 r.
Publikacja androidx.exifinterface:exifinterface:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.
Główne zmiany od wersji 1.1.0
- Dodaliśmy obsługę dodawania EXIF do plików PNG
- Dodaliśmy obsługę plików WebP i strumienia danych tylko EXIF.
- Dodano interfejs API, który sprawdza, czy określony typ MIME jest obsługiwany.
- Dodaliśmy więcej tagów czasu przesunięcia:
TAG_OFFSET_TIME,TAF_OFFSET_TIME_DIGITIZEDiTAG_OFFSET_TIME_ORIGINAL
Wersja 1.2.0-rc01
19 lutego 2020 r.
Publikacja androidx.exifinterface:exifinterface:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że pliki JPEG były zapisywane nieprawidłowo, jeśli zawierały dane XMP.
Wersja 1.2.0-beta01
18 grudnia 2019 r.
Publikacja androidx.exifinterface:exifinterface:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy obsługę dodawania EXIF do plików PNG
- Dodaliśmy obsługę odczytu i zapisu danych EXIF z plików WebP
- Dodaliśmy obsługę strumienia zawierającego tylko dane EXIF
Zmiany w interfejsie API
- Dodano interfejs API, który sprawdza, czy określony typ MIME jest obsługiwany.
- Udostępniliśmy tagi odczytu i zapisu OffsetTime*
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że w przypadku funkcji
getAttributeRange()zwracane były nieprawidłowe przesunięcia.
Wersja 1.1.0
Wersja 1.1.0
20 listopada 2019 r.
Publikacja androidx.exifinterface:exifinterface:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Ważne zmiany od wersji 1.0.0
- Obsługa formatu HEIF i większej liczby tagów XMP
- Dodano obsługę tworzenia obiektu
ExifInterfacez obiektuFilelubFileDescriptor. - Dodano więcej metod pobierania atrybutu:
hasAttribute,getAttributeBytesigetAttributesRange
Wersja 1.1.0-rc01
9 października 2019 r.
Publikacja androidx.exifinterface:exifinterface:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano brakującą nazwę formatu (IFD), aby zapobiec wystąpieniu błędu
ArrayIndexOutOfBoundsExceptionw przypadkuloadAttributes - Zapobiega usunięciu pliku źródłowego, gdy podczas wywoływania funkcji
saveAttributeswystąpi wyjątek. - Rozwiązaliśmy problem z wyjątkiem, który występował, gdy po zastąpieniu pliku wywoływano funkcję
saveAttributes().
Wersja 1.1.0-beta01
2 lipca 2019 r.
Publikacja androidx.exifinterface:exifinterface:1.1.0-beta01 Zatwierdzenia zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Zwraca błąd
NullPointerException, gdy dla argumentów@NonNullustawiono wartośćnull - Obsługa tagów XMP
Zmiany w interfejsie API
- Dodaliśmy więcej metod uzyskiwania informacji o atrybutach
hasAttribute,getAttributeBytesigetAttributesRange
Poprawki błędów
- Zapobieganie wyciekowi pamięci deskryptora pliku
Wersja 1.1.0-alpha01
13 marca 2019 r.
Publikacja androidx.exifinterface:exifinterface:1.1.0-alpha01 Pełną listę zmian zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
- Obsługa formatu HEIF
Zmiany w interfejsie API
- Dodano więcej konstruktorów klasy ExifInterface
- Poprawiony błąd:
TAG_CAMARA_OWNER_NAME->TAG_CAMERA_OWNER_NAME
Poprawki błędów
- Naprawiono sprawdzanie możliwego przepełnienia w przypadku miniatury obrazu (aosp/748608).