相机图片元数据

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