1

画像の 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(...) の戻り値が null になることです。

この問題を解決できるサードパーティのライブラリがあるかどうか疑問に思っていますか? 助けてくれてありがとう。

4

2 に答える 2

0

Exif には、実際にはいくつかの可能な日時値があります。すべての画像に露光時間が含まれているわけではありません。

metadata-extractor私は、 Exif やその他の種類のメタデータを強力にサポートする Java ライブラリと、シンプルな API を維持しています。exiftool が画像ファイルで日時を見つけた場合、それにmetadata-extractorアクセスできます。

GitHub を見てください。Maven経由でも利用できます。

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

于 2015-09-30T18:00:38.487 に答える
0

一部の画像は正常に動作します。つまり、問題はコードではなくデータにありました。一部のデバイス/アプリケーションは、ExifInterface が解析できない非標準の方法で exif データをエンコードしていると思われます。exiftoolを使用して EXIF をダンプし、それを変更して標準化することができます

于 2015-09-30T01:58:59.443 に答える