我正在构建一个应用程序,它从图像中读取 EXIF 数据并将该数据覆盖在图像上,这样您就可以使用漂亮的图形共享您的相机设置,而不是手动输入它们(例如:“F/1.4 at 1/200 ISO400”)
我正在使用AndroidX ExifInterface 1.1.0-beta01
并且打击代码可以获取除 LensMake 和 LensModel 之外的每条数据始终为空。
我已经尝试恢复到ExifInterface 1.0.0
并且没有任何区别,它的行为仍然相同。
我注意到 ExifInterface 的文档将 LensMake 和 LensModel 称为返回一个“ASCII 字符串”,而 Camera Make 和 Camera Model 只返回一个“字符串”,所以我尝试了不同的 getAttribute 变体但没有成功。
这些确切的文件在我之前构建的应用程序的 iOS 版本上运行良好,并且我尝试了来自多个不同相机(Fuji X-T3、佳能 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)
}
我希望能够读取镜头信息,我知道它在文件中,但这个库似乎不想公开它。