2015-09-30 89 views
1

爲了獲得圖像的Exif信息,我寫了類似下面的一些代碼:的Android得Exif信息的問題

ExifInterface exif = new ExifInterface(path); 
String aaa= (exif.getAttribute(ExifInterface.TAG_DATETIME)); 

我還加讀,寫權限在AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

現在問題是對於某些特定的文件夾,如 /storage/emultaed/0/Pictures,/ storage/emultaed/0/Download, exif.getAttribute(...)的返回值爲空。

我想知道是否有任何第三方lib可以解決這個問題? 感謝您的幫助。

回答

0

一些圖片工作正常 - 所以問題是數據,而不是你的代碼。我懷疑某些設備/應用程序以ExifInterface無法解析的非標準方式對其exif數據進行編碼。 您可以使用exiftool轉儲EXIF,並對其進行修改和標準化。

0

Exif中實際上有幾種可能的日期時間值。並非所有圖像都包含曝光時間。

我維護一個Java metadata-extractor庫,它對Exif和其他類型的元數據以及一個簡單的API有很好的支持。如果exiftool在圖像文件中找到日期時間,則metadata-extractor將允許您訪問它。

看看GitHub。它也可以通過Maven獲得。

https://github.com/drewnoakes/metadata-extractor