Métadonnées de l'image de la caméra

ARCore vous permet d'utiliser ImageMetadata pour accéder aux clés-valeurs des métadonnées à partir du résultat de la capture d'image de la caméra. Certains types courants de métadonnées d'image d'appareil photo auxquels vous souhaiterez peut-être accéder sont la longueur focale, les données d'horodatage de l'image ou les informations d'éclairage.

Le module Android Camera peut enregistrer au moins 160 paramètres sur l'image pour chaque image capturée, en fonction des fonctionnalités de l'appareil. Pour obtenir la liste de toutes les clés de métadonnées possibles, consultez ImageMetadata.

Obtenir la valeur d'une clé de métadonnées individuelle

Utilisez getImageMetadata() pour obtenir une valeur de clé de métadonnées spécifique et interceptez l'MetadataNotFoundException si elle n'est pas disponible. L'exemple suivant montre comment obtenir la clé-valeur de métadonnées 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()
}