Metadados da imagem da câmera

O ARCore permite usar ImageMetadata para acessar os valores das chaves de metadados do resultado da captura de imagens da câmera. Alguns tipos comuns de metadados de imagem da câmera que você podem querer acessar: distância focal, dados de carimbo de data/hora da imagem informações imprecisas ou inadequadas.

O módulo Camera do Android pode registrar 160 ou mais parâmetros sobre a imagem para cada frame capturado, dependendo dos recursos do dispositivo. Para acessar uma lista possíveis chaves de metadados, consulte ImageMetadata.

Receber o valor de uma chave de metadados individual

Usar getImageMetadata() para receber um valor de chave de metadados específico e capturar MetadataNotFoundException se não estiver disponível. O exemplo a seguir mostra como receber o Valor da chave de metadados 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()
}