【发布时间】:2020-01-28 17:50:45
【问题描述】:
我正在构建一个应用程序,它可以从图像中读取 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)
}
我希望能够读取镜头信息,我知道它在文件中,但这个库似乎不想公开它。
【问题讨论】:
标签: android androidx android-exifinterface