Exifinterface

Membaca dan menulis tag EXIF file gambar.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
13 November 2024 1.3.7 - - 1.4.0-alpha01

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Exifinterface, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

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

Kotlin

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

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.4

Versi 1.4.0-alpha01

13 November 2024

androidx.exifinterface:exifinterface:1.4.0-alpha01 dirilis. Versi 1.4.0-alpha01 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan untuk membaca data XMP dari gambar HEIF.
  • Menambahkan dukungan untuk membaca Exif dan XMP dari gambar AVIF.

Perubahan API

  • Menunjukkan bahwa parameter location untuk setGpsInfo adalah @Nullable dan bahwa meneruskan null akan menghasilkan No-Op. (If924c, b/236484611)

Perbaikan Bug

  • Lanjutkan penguraian setelah menemukan offset IFD yang tidak valid (b/264729367).
  • Menangani gambar WebP yang salah berisi penanda JPEG APP1 sebelum data Exif-nya (b/281638358).
  • Pastikan perubahan XMP dalam JPEG dengan segmen XMP terpisah disimpan ke segmen XMP terpisah yang sama oleh saveAttributes(), bukan ditulis ke tag TIFF/Exif 700 yang tidak didukung oleh spesifikasi XMP dan tempat banyak alat tidak akan menemukannya.
  • Hindari duplikasi data XMP dari segmen terpisah ke direktori pratinjau TIFF saat menyimpan (b/309843390).
  • Meningkatkan presisi konversi ganda ke rasional. (b/312680558).
  • Menerima format rasional (x/y) ke setAttribute untuk tag rasional 'lama' yang dikonversi secara otomatis menjadi desimal saat ditampilkan dari getAttribute (b/312680558).
  • Pastikan data XMP yang ditambahkan ke gambar JPEG yang belum berisi XMP ditulis ke segmen terpisah, seperti yang ditentukan oleh spesifikasi XMP. ExifInterface didokumentasikan untuk memilih XMP dalam tag Exif 700 dalam gambar JPEG (melanggar spesifikasi), sehingga perilaku ini dipertahankan saat membaca/menulis gambar dengan data XMP yang ada.
  • Memperbaiki output yang rusak saat menulis gambar WebP dengan tinggi atau lebar lebih besar dari 8191 piksel (b/342697059).
  • Library ini kini menggunakan anotasi nullness JSpecify, yang merupakan penggunaan jenis. Developer Kotlin harus menggunakan argumen compiler berikut untuk menerapkan penggunaan yang benar: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0f, b/326456246)
  • Menghapus garis besar manual akses ke API platform baru karena hal ini terjadi secara otomatis melalui pemodelan API saat menggunakan R8 dengan AGP 7.3 atau yang lebih baru (misalnya, R8 versi 3.3) dan untuk semua build saat menggunakan AGP 8.1 atau yang lebih baru (misalnya, D8 versi 8.1). Klien yang tidak menggunakan AGP disarankan untuk mengupdate ke D8 versi 8.1 atau yang lebih baru. Baca artikel ini untuk informasi selengkapnya. (If6b4c, b/345472586)

Versi 1.3.7

Versi 1.3.7

13 Desember 2023

androidx.exifinterface:exifinterface:1.3.7 dirilis. Versi 1.3.7 berisi commit ini.

Perbaikan Bug

  • Menampilkan pengecualian dari ExifInterface.saveAttributes() saat mencoba menulis segmen APP1 JPEG yang terlalu besar (sebelumnya kita akan menulis segmen APP1 yang tidak valid dengan panjang yang salah dan terpotong:(b/263747161)). Lanjutkan penguraian setelah menemukan offset IFD yang tidak valid (sebelumnya penguraian akan segera dihentikan, yang dapat menyebabkan nilai yang salah ditampilkan: (b/264729367)).

Versi 1.3.6

Versi 1.3.6

8 Februari 2023

androidx.exifinterface:exifinterface:1.3.6 dirilis. Versi 1.3.6 berisi commit ini.

Perbaikan Bug

  • Memperbaiki pembacaan bit alfa dari bagian WebP VP8L (b/255405635).

Versi 1.3.5

Versi 1.3.5

24 Oktober 2022

androidx.exifinterface:exifinterface:1.3.5 dirilis. Versi 1.3.5 berisi commit ini.

Perbaikan Bug

  • Memperbaiki dua kasus saveAttributes() yang menghasilkan file WebP yang tidak valid.

Versi 1.3.4

Versi 1.3.4

5 Oktober 2022

androidx.exifinterface:exifinterface:1.3.4 dirilis. Versi 1.3.4 berisi commit ini.

Perbaikan Bug

  • Menghapus dukungan untuk menyimpan atribut ke file DNG. Dukungan yang ditambahkan pada 1.3.3 tidak lengkap dan menghasilkan file rusak.

Versi 1.3.3

Versi 1.3.3

4 Agustus 2021

androidx.exifinterface:exifinterface:1.3.3 dirilis. Versi 1.3.3 berisi commit ini.

Perbaikan Bug

  • Memperbaiki penguraian tag terkait subsec. (aosp/1508143)
  • Mencegah RuntimeException saat memanggil setDataSource. (c8e66e9)
  • Mencegah skipBytes melakukan looping tanpa henti. (fdbe88b)
  • Menangkap RuntimeException dari MediaMetadataRetriever. (389b21a)
  • Menambahkan dukungan penyimpanan atribut untuk file DNG (3017dbc)
  • Mengganti tag non-thumbnail dengan tag thumbnail. (e1b916d)

Versi 1.3.2

Versi 1.3.2

2 Desember 2020

androidx.exifinterface:exifinterface:1.3.2 dirilis. Versi 1.3.2 berisi commit berikut ini.

Perbaikan Bug

  • Mengizinkan SRATIONAL untuk GPS_LATITUDE dan GPS_LONGITUDE.
  • Menambahkan dukungan untuk membaca/menulis format sekunder (2020-01-01 00:00:00) tag DateTime.
  • Mencegah penghapusan sementara file asal saat memanggil saveAttribute().

Versi 1.3.1

Versi 1.3.1

14 Oktober 2020

androidx.exifinterface:exifinterface:1.3.1 dirilis. Versi 1.3.1 berisi commit ini.

Perbaikan Bug

  • Memperbaiki implementasi saveAttributes untuk mempertahankan data gambar di MediaProvider

Versi 1.3.0

Versi 1.3.0

16 September 2020

androidx.exifinterface:exifinterface:1.3.0 dirilis. Versi 1.3.0 berisi commit ini.

Perubahan utama sejak versi 1.2.0

  • Memperluas dukungan penulisan EXIF WebP untuk menyertakan file yang hanya berisi potongan VP8 atau VP8L.
  • Menghapus buffering yang tidak perlu dan menyebabkan pengecualian OutOfMemory untuk file gambar berukuran besar.
  • INVALID_DATE_TIME dihapus. Sebagai gantinya, gunakan NULL untuk menampilkan nilai datetime yang tidak valid.
  • Membuat getGpsDateTime menampilkan Long.MIN_VALUE, bukan -1 untuk nilai yang tidak valid.

Versi 1.3.0-rc01

2 September 2020

androidx.exifinterface:exifinterface:1.3.0-rc01 dirilis tanpa perubahan sejak 1.3.0-beta01. Versi 1.3.0-rc01 berisi commit ini.

Versi 1.3.0-beta01

19 Agustus 2020

androidx.exifinterface:exifinterface:1.3.0-beta01 dirilis. Versi 1.3.0-beta01 berisi commit ini.

Fitur Baru

  • Memperluas dukungan penulisan EXIF WebP untuk menyertakan file yang hanya berisi potongan VP8 atau VP8L.

Perubahan API

  • INVALID_DATE_TIME dihapus. Sebagai gantinya, gunakan NULL untuk menampilkan nilai datetime yang tidak valid.

Perbaikan Bug

  • Membuat getGpsDateTime menampilkan Long.MIN_VALUE, bukan -1 karena -1 adalah nilai yang valid
  • Membuat pengambil terkait DateTime mempertimbangkan nilai offset (+/-) dari string tanggal.
  • Menghapus buffering yang tidak perlu dan menyebabkan pengecualian OutOfMemory untuk file gambar berukuran besar.
  • Menyetel lokal default ke AS
  • Mengganti penambahan “.tmp” untuk membuat file temporer menjadi penambahan awalan.

Versi 1.3.0-alpha01

19 Februari 2020

androidx.exifinterface:exifinterface:1.3.0-alpha01 dirilis. Versi 1.3.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan metode baru: ExifInterface.getGpsDateTime()

Versi 1.2.0

Versi 1.2.0

1 April 2020

androidx.exifinterface:exifinterface:1.2.0 dirilis. Versi 1.2.0 berisi commit ini.

Perubahan utama sejak versi 1.1.0

  • Menambahkan dukungan untuk menambahkan EXIF ke file PNG
  • Menambahkan dukungan untuk file WebP dan streaming khusus data EXIF
  • Menambahkan API untuk memeriksa apakah jenis MIME yang ditentukan didukung
  • Menambahkan lebih banyak tag untuk waktu offset: TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED, dan TAG_OFFSET_TIME_ORIGINAL

Versi 1.2.0-rc01

19 Februari 2020

androidx.exifinterface:exifinterface:1.2.0-rc01 dirilis. Versi 1.2.0-rc01 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah ketika file JPEG salah disimpan saat JPEG memiliki data XMP

Versi 1.2.0-beta01

18 Desember 2019

androidx.exifinterface:exifinterface:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.

Fitur baru

  • Menambahkan dukungan untuk menambahkan EXIF ke file PNG
  • Menambahkan dukungan untuk membaca dan menulis EXIF dari file WebP
  • Menambahkan dukungan untuk aliran khusus data EXIF

Perubahan API

  • Menambahkan API untuk memeriksa apakah jenis MIME yang ditentukan didukung
  • Mengekspos tag baca dan tulis OffsetTime*

Perbaikan bug

  • Memperbaiki masalah yang menyebabkan offset yang salah ditampilkan untuk getAttributeRange()

Versi 1.1.0

Versi 1.1.0

20 November 2019

androidx.exifinterface:exifinterface:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan penting sejak versi 1.0.0

  • Menambahkan dukungan untuk format HEIF dan tag XMP lainnya
  • Menambahkan dukungan untuk menyusun objek ExifInterface dari File atau FileDescriptor
  • Menambahkan lebih banyak metode untuk mendapatkan atribut: hasAttribute, getAttributeBytes, dan getAttributesRange

Versi 1.1.0-rc01

9 Oktober 2019

androidx.exifinterface:exifinterface:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Perbaikan bug

  • Menambahkan nama format yang hilang (IFD) untuk mencegah ArrayIndexOutOfBoundsException pada loadAttributes
  • Mencegah penghapusan file asal jika pengecualian terjadi saat memanggil saveAttributes
  • Memperbaiki masalah pengecualian saat ada panggilan ke saveAttributes() setelah menimpa file.

Versi 1.1.0-beta01

2 Juli 2019

androidx.exifinterface:exifinterface:1.1.0-beta01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Memunculkan NullPointerException saat null ditentukan untuk argumen @NonNull
  • Dukungan untuk tag XMP

Perubahan API

  • Menambahkan lebih banyak metode untuk mendapatkan info atribut
  • hasAttribute, getAttributeBytes, dan getAttributesRange

Perbaikan bug

  • Mencegah kebocoran memori deskriptor file

Versi 1.1.0-alpha01

13 Maret 2019

androidx.exifinterface:exifinterface:1.1.0-alpha01 dirilis. Daftar lengkap commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Mendukung format HEIF

Perubahan API

  • Menambahkan lebih banyak konstruktor ExifInterface
  • Memperbaiki kesalahan ketik: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

Perbaikan bug

  • Memperbaiki pemeriksaan kemungkinan overflow untuk gambar thumbnail (aosp/748608)