فراداده تصویر دوربین

ARCore به شما امکان می دهد از ImageMetadata برای دسترسی به مقادیر کلید فراداده از نتیجه ضبط تصویر دوربین استفاده کنید. برخی از انواع رایج متادیتای تصویر دوربین که ممکن است بخواهید به آنها دسترسی داشته باشید عبارتند از: فاصله کانونی، داده های مهر زمانی تصویر، یا اطلاعات نور.

ماژول Camera اندروید می تواند 160 پارامتر یا بیشتر را در مورد تصویر برای هر فریم گرفته شده، بسته به قابلیت های دستگاه ضبط کند. برای فهرستی از تمام کلیدهای فراداده ممکن، ImageMetadata را ببینید.

مقدار یک کلید فراداده فردی را دریافت کنید

از getImageMetadata() برای به دست آوردن یک مقدار کلید متادیتا خاص استفاده کنید و اگر MetadataNotFoundException در دسترس نیست، آن را بگیرید. مثال زیر دریافت مقدار کلید فراداده SENSOR_EXPOSURE_TIME را نشان می دهد.

جاوا

// 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;
  }
}

کاتلین

// 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()
}