ARCore memungkinkan Anda menggunakan ImageMetadata
untuk mengakses nilai kunci metadata dari
hasil pengambilan gambar kamera Anda. Beberapa jenis {i>metadata <i}
gambar kamera yang umum
mungkin ingin diakses adalah panjang fokus, data stempel waktu gambar, atau pencahayaan
tidak akurat atau tidak sesuai.
Modul Camera
Android dapat merekam 160 atau lebih parameter tentang gambar
untuk setiap {i>frame<i} yang ditangkap, tergantung pada kemampuan perangkat. Untuk mengetahui daftar semua
kunci metadata yang mungkin, lihat ImageMetadata
.
Mendapatkan nilai setiap kunci metadata
Gunakan getImageMetadata()
untuk mendapatkan nilai kunci metadata tertentu, dan menangkap MetadataNotFoundException
jika tidak tersedia. Contoh berikut menunjukkan cara mendapatkan
Nilai kunci metadata SENSOR_EXPOSURE_TIME
.
Java
// Obtain the SENSOR_EXPOSURE_TIME metadata value from the frame. Long getSensorExposureTime(Frame frame) { try { // Can throw NotYetAvailableException when sensors data is not yet available. ImageMetadata metadata = frame.getImageMetadata(); // Get the exposure time metadata. Throws MetadataNotFoundException if it's not available. return metadata.getLong(ImageMetadata.SENSOR_EXPOSURE_TIME); } catch (MetadataNotFoundException | NotYetAvailableException exception) { return null; } }
Kotlin
// Obtain the SENSOR_EXPOSURE_TIME metadata value from the frame. fun getSensorExposureTime(frame: Frame): Long? { return runCatching { // Can throw NotYetAvailableException when sensors data is not yet available. val metadata = frame.imageMetadata // Get the exposure time metadata. Throws MetadataNotFoundException if it's not available. return metadata.getLong(ImageMetadata.SENSOR_EXPOSURE_TIME) } .getOrNull() }