Я создаю приложение, которое считывает данные EXIF из изображений и накладывает эти данные на изображение, чтобы вы могли поделиться настройками камеры с хорошим графиком, а не печатать их вручную (например, «F / 1.4 at 1/200»).ISO400 ")
Я использую AndroidX ExifInterface 1.1.0-beta01
, и код удара работает, чтобы получить все данные, кроме LensMake и LensModel, всегда равных нулю.
Я попытался вернуться к ExifInterface 1.0.0
, и это не имело никакого значения, оно все равно ведет себя идентично.
Я отмечаю, что документация для ExifInterface ссылается на LensMake и LensModel как на возвращение «ASCII String», а Camera Make и Camera Model просто возвращают «String», поэтому я пробовал различные варианты getAttribute без успеха.
Эти точные файлы отлично работают в версии iOS для приложения, которое я ранее создал, и я пробовал файлы с разных камер (Fuji X-T3, Canon 5D III)
var stream: InputStream? = null
try {
stream = contentResolver.openInputStream(uri)
val exifInterface = ExifInterface(stream!!)
FS = exifInterface.getAttribute(ExifInterface.TAG_F_NUMBER)!!
SS = exifInterface.getAttribute(ExifInterface.TAG_EXPOSURE_TIME)!!
ISO = exifInterface.getAttribute(ExifInterface.TAG_PHOTOGRAPHIC_SENSITIVITY)!!
val LensMake = exifInterface.getAttribute(ExifInterface.TAG_LENS_MAKE) //THIS APPEARS TO BE ALWAYS NULL :(
val LensModel = exifInterface.getAttribute(ExifInterface.TAG_LENS_MODEL) //THIS APPEARS TO BE ALWAYS NULL :(
val CameraMake = exifInterface.getAttribute(ExifInterface.TAG_MAKE)
val CameraModel = exifInterface.getAttribute(ExifInterface.TAG_MODEL)
}
Я хотел бы иметь возможность прочитать информацию об объективе, я знаю, что она находится в файле, но эта библиотека, похоже, не хочет ее раскрывать.