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

يتيح لك 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()
}