بيانات وصفية لصورة الكاميرا

يتيح لك ARCore استخدام ImageMetadata للوصول إلى قيم مفاتيح البيانات الوصفية من من التقاط صورة بالكاميرا. تتضمن بعض الأنواع الشائعة للبيانات الوصفية لصور الكاميرا التي قد تريد الوصول إليها هي البعد البؤري أو بيانات الطابع الزمني للصورة أو الإضاءة المعلومات.

يمكن لوحدة Android Camera تسجيل 160 معلَمة أو أكثر حول الصورة. لكل إطار تم التقاطه، بناءً على إمكانات الجهاز. للحصول على قائمة بجميع المفاتيح المحتملة للبيانات الوصفية، راجِع ImageMetadata.

الحصول على قيمة مفتاح بيانات وصفية فردي

استخدام getImageMetadata() للحصول على قيمة مفتاح بيانات وصفية محددة، ثم الاطّلاع على MetadataNotFoundException إذا لم يكن متاحًا. يوضح المثال التالي الحصول على قيمة مفتاح البيانات الوصفية 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()
}