ARCore umożliwia dostęp do par klucz-wartość metadanych z parametru ImageMetadata
w wyniku przechwytywania obrazu z aparatu. Niektóre typowe metadane zdjęć z aparatu
takich jak długość ogniskowa, dane sygnatury czasowej obrazu czy oświetlenie
i informacjami o nich.
Moduł Camera
na Androidzie może rejestrować co najmniej 160 parametrów obrazu
dla każdej przechwyconej klatki, w zależności od możliwości urządzenia. Lista wszystkich
możliwe klucze metadanych znajdziesz na stronie ImageMetadata
.
Pobieranie wartości pojedynczego klucza metadanych
Użyj formatu getImageMetadata()
aby uzyskać określoną wartość klucza metadanych i przechwycić klucz MetadataNotFoundException
jeśli nie jest dostępny. Poniższy przykład pokazuje, jak uzyskać
Wartość klucza metadanych 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() }