Metadata gambar kamera

ARCore memungkinkan Anda menggunakan ImageMetadata untuk mengakses nilai kunci metadata dari hasil pengambilan gambar kamera. Beberapa jenis umum metadata gambar kamera kamera mungkin ingin Anda akses adalah panjang fokus, data stempel waktu gambar, atau informasi pencahayaan.

Modul Camera Android dapat merekam 160 parameter atau lebih tentang gambar untuk setiap frame yang diambil, bergantung pada kemampuan perangkat. Untuk daftar semua kemungkinan kunci metadata, lihat ImageMetadata.

Mendapatkan nilai dari setiap kunci metadata

Gunakan getImageMetadata() untuk mendapatkan nilai kunci metadata tertentu, dan tangkap MetadataNotFoundException jika tidak tersedia. Contoh berikut menunjukkan cara memperoleh 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()
}