Exifinterface
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
13 listopada 2024 r. | 1.3.7 | - | - | 1.4.0-alpha01 |
Deklarowanie zależności
Aby dodać zależność od Exifinterface, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Groovy
dependencies { implementation "androidx.exifinterface:exifinterface:1.3.7" }
Kotlin
dependencies { implementation("androidx.exifinterface:exifinterface:1.3.7") }
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 zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.4
Wersja 1.4.0-alpha01
13 listopada 2024 r.
androidx.exifinterface:exifinterface:1.4.0-alpha01
został zwolniony. Wersja 1.4.0-alpha01 zawiera te komisy.
Nowe funkcje
- Dodaliśmy obsługę odczytu danych XMP z obrazów HEIF.
- Dodaliśmy obsługę odczytu metadanych Exif i XMP z obrazów AVIF.
Zmiany w interfejsie API
- Wskazanie, że parametr
location
dlasetGpsInfo
to@Nullable
, a przekazanie wartościnull
spowoduje 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 osobnym segmentem XMP są przechowywane w tym samym osobnym segmencie XMP przez
saveAttributes()
, a nie zapisywane w tagu TIFF/Exif 700, który nie jest obsługiwany przez specyfikację XMP i gdzie wiele narzędzi nie będzie ich znajdować. - Podczas zapisywania nie dubluj danych XMP z osobnego segmentu w katalogu podglądu TIFF (b/309843390).
- Poprawić dokładność konwersji liczb podwójnie wykładniczych na liczby ułamkowe. (b/312680558).
- Akceptowanie formatu ułamkowego (x/y) w przypadku „starszych” tagów ułamkowych, które są automatycznie konwertowane na liczby dziesiętne po zwróceniu z
getAttribute
(b/312680558).setAttribute
- Upewnij się, że dane XMP dodane do obrazu JPEG, który nie zawiera jeszcze XMP, są zapisywane w osobnym segmencie zgodnie ze specyfikacją XMP.
ExifInterface
jest udokumentowany jako preferujący XMP w tagu Exif 700 w obrazach JPEG (co narusza specyfikację), więc to zachowanie jest zachowane podczas odczytu i zapisu obrazów z istniejącymi danymi XMP. - Naprawić uszkodzony wynik podczas zapisywania obrazów WebP o wysokości lub szerokości większej niż 8191 pikseli (b/342697059).
- Biblioteka ta korzysta teraz z adnotacji JSpecify dotyczących nullowania, które są używane w zależności od typu. Deweloperzy Kotlina powinni używać tych argumentów kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(I5cd0f, b/326456246) - Usunięto 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 z AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz dla wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do 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.
androidx.exifinterface:exifinterface:1.3.7
został zwolniony. Wersja 1.3.7 zawiera te commity.
Poprawki błędów
- Wyjątek z
ExifInterface.saveAttributes()
podczas próby zapisania zbyt dużego segmentu JPEG APP1 (wcześniej zapisywaliśmy nieprawidłowy segment APP1 o nieprawidłowej, obciętej długości:(b/263747161)). Kontynuowanie analizowania po napotkaniu nieprawidłowego przesunięcia IFD (wcześniej analiza zatrzymywała się natychmiast, co mogło powodować zwracanie nieprawidłowych wartości: b/264729367).
Wersja 1.3.6
Wersja 1.3.6
8 lutego 2023 r.
androidx.exifinterface:exifinterface:1.3.6
został zwolniony. Wersja 1.3.6 zawiera te commity.
Poprawki błędów
- Naprawiono odczyt bitu alfa z kawałków WebP VP8L (b/255405635).
Wersja 1.3.5
Wersja 1.3.5
24 października 2022 r.
androidx.exifinterface:exifinterface:1.3.5
został zwolniony. Wersja 1.3.5 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązanie 2 przypadków, w których
saveAttributes()
generował nieprawidłowe pliki WebP.
Wersja 1.3.4
Wersja 1.3.4
5 października 2022 r.
androidx.exifinterface:exifinterface:1.3.4
został zwolniony. 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 tworzenie uszkodzonych plików.
Wersja 1.3.3
Wersja 1.3.3
4 sierpnia 2021 r.
androidx.exifinterface:exifinterface:1.3.3
został zwolniony. Wersja 1.3.3 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błędy związane z analizowaniem tagów związanych z subsekundami. (aosp/1508143)
- Zapobiegaj wyjątkowi RuntimeException podczas wywoływania metody setDataSource. (c8e66e9)
- Zapobieganie nieskończonemu pętli w przypadku skipBytes. (fdbe88b)
- Przechwyć wyjątek RuntimeException z MediaMetadataRetriever. (389b21a)
- Dodanie obsługi zapisywania atrybutów w plikach DNG (3017dbc)
- Zastąp tagi inne niż miniatury tagami miniatur. (e1b916d)
Wersja 1.3.2
Wersja 1.3.2
2 grudnia 2020 r.
androidx.exifinterface:exifinterface:1.3.2
został zwolniony. Wersja 1.3.2 zawiera te commity.
Poprawki błędów
- Zezwalanie na
SRATIONAL
w przypadkuGPS_LATITUDE
iGPS_LONGITUDE
. - Dodano obsługę odczytu i zapisu w formacie dodatkowym (2020-01-01 00:00:00) tagu DateTime.
- Zapobiega tymczasowemu usunięciu pliku źródłowego podczas wywołania funkcji saveAttribute().
Wersja 1.3.1
Wersja 1.3.1
14 października 2020 r.
androidx.exifinterface:exifinterface:1.3.1
został zwolniony. 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
androidx.exifinterface:exifinterface:1.3.0
został zwolniony. Wersja 1.3.0 zawiera te commity.
Najważniejsze zmiany od wersji 1.2.0
- Rozszerzona obsługa zapisu WebP EXIF, aby obejmować 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 z obrazami.
- Użytkownik
INVALID_DATE_TIME
został usunięty. Zamiast tego użyj funkcjiNULL
, aby zwrócić nieprawidłowe wartości daty i godziny. - W przypadku nieprawidłowej wartości funkcja
getGpsDateTime
zwraca wartośćLong.MIN_VALUE
zamiast-1
.
Wersja 1.3.0-rc01
2 września 2020 r.
androidx.exifinterface:exifinterface:1.3.0-rc01
jest publikowany bez zmian od 1.3.0-beta01
. Wersja 1.3.0-rc01 zawiera te commity.
Wersja 1.3.0-beta01
19 sierpnia 2020 r.
androidx.exifinterface:exifinterface:1.3.0-beta01
został zwolniony. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Rozszerzona obsługa zapisu WebP EXIF, aby obejmować pliki zawierające tylko fragmenty VP8 lub VP8L.
Zmiany w interfejsie API
- Użytkownik
INVALID_DATE_TIME
został usunięty. Zamiast tego użyj wartościNULL
, aby zwrócić nieprawidłową wartość daty i godziny.
Poprawki błędów
- Zmiana funkcji
getGpsDateTime
, aby zwracała wartośćLong.MIN_VALUE
zamiast-1
, ponieważ-1
jest prawidłową wartością - Zmiana: metody pobierające wartości związane z DateTime uwzględniają 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 z obrazami.
- Ustawianie domyślnego języka na angielski (USA)
- Dodawanie „.tmp” do tworzenia plików tymczasowych zostało zastąpione przez dodawanie prefiksu.
Wersja 1.3.0-alpha01
19 lutego 2020 r.
androidx.exifinterface:exifinterface:1.3.0-alpha01
został zwolniony. 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.
androidx.exifinterface:exifinterface:1.2.0
został zwolniony. Wersja 1.2.0 zawiera te zatwierdzenia.
Najważniejsze zmiany od wersji 1.1.0
- Dodaliśmy obsługę dodawania informacji EXIF do plików PNG.
- Dodano obsługę plików WebP i strumienia danych EXIF
- Dodano interfejs API do sprawdzania, czy podany typ mime jest obsługiwany.
- Dodano więcej tagów dla przesunięcia czasu:
TAG_OFFSET_TIME
,TAF_OFFSET_TIME_DIGITIZED
iTAG_OFFSET_TIME_ORIGINAL
Wersja 1.2.0-rc01
19 lutego 2020 r.
androidx.exifinterface:exifinterface:1.2.0-rc01
został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązanie problemu polegającego na tym, że pliki JPEG były zapisywane nieprawidłowo, jeśli zawierały dane XMP.
Wersja 1.2.0-beta01
18 grudnia 2019 r.
androidx.exifinterface:exifinterface:1.2.0-beta01
został zwolniony. Wersja 1.2.0-beta01 zawiera te zatwierdzenia:
Nowe funkcje
- Dodaliśmy obsługę dodawania informacji EXIF do plików PNG.
- Dodaliśmy obsługę odczytu i zapisu danych EXIF z plików WebP.
- Dodano obsługę strumienia tylko z danymi EXIF.
Zmiany w interfejsie API
- Dodano interfejs API do sprawdzania, czy podany typ mime jest obsługiwany.
- tagi OffsetTime* do odczytu i zapisu;
Poprawki błędów
- Rozwiązaliśmy problem z zwracaniem nieprawidłowych przesunięć w przypadku funkcji
getAttributeRange()
.
Wersja 1.1.0
Wersja 1.1.0
20 listopada 2019 r.
androidx.exifinterface:exifinterface:1.1.0
został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia:
Ważne zmiany od wersji 1.0.0
- Obsługa formatu HEIF i więcej tagów XMP
- Dodano obsługę tworzenia obiektu
ExifInterface
z obiektuFile
lubFileDescriptor
- Dodaliśmy więcej metod uzyskiwania atrybutów:
hasAttribute
,getAttributeBytes
igetAttributesRange
Wersja 1.1.0-rc01
9 października 2019 r.
androidx.exifinterface:exifinterface:1.1.0-rc01
został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia:
Poprawki błędów
- Dodano brakujący format nazwy (IFD), aby zapobiec
ArrayIndexOutOfBoundsException
wloadAttributes
- zapobieganie usunięciu pliku źródłowego, gdy podczas wywołania funkcji
saveAttributes
wystąpi wyjątek; - Rozwiązaliśmy problem z wyjątkami, gdy po zastąpieniu pliku następuje wywołanie funkcji
saveAttributes()
.
Wersja 1.1.0-beta01
2 lipca 2019 r.
androidx.exifinterface:exifinterface:1.1.0-beta01
został zwolniony. Zmiany zawarte w tej wersji znajdziesz tutaj.
Nowe funkcje
- Wyrzuca błąd
NullPointerException
, gdy argumentnull
ma wartośćnull
.@NonNull
- Obsługa tagów XMP
Zmiany w interfejsie API
- Dodaliśmy więcej metod uzyskiwania informacji o atrybutach.
hasAttribute
,getAttributeBytes
igetAttributesRange
Poprawki błędów
- Zapobieganie wyciekom pamięci w przypadku deskryptorów plików
Wersja 1.1.0-alpha01
13 marca 2019 r.
androidx.exifinterface:exifinterface:1.1.0-alpha01
został zwolniony. Pełną listę zatwierdzeń zawartych w tej wersji znajdziesz tutaj.
Nowe funkcje
- Obsługa formatu HEIF
Zmiany w interfejsie API
- Dodano więcej konstruktorów interfejsu Exif
- Poprawiono błąd pisowni:
TAG_CAMARA_OWNER_NAME
->TAG_CAMERA_OWNER_NAME
Poprawki błędów
- Naprawiono sprawdzanie możliwego przepełnienia miniatury (aosp/748608).