我正在开发的应用程序的一部分,必须获取图像的元数据以供以后在其中使用,到目前为止,我使用的是ExifInterface,类似于以下内容:
//..
String filename = "DirectorioDondeEstaElFichero/DSC_.JPG";
try {
ExifInterface exif = new ExifInterface(filename);
FiltroExif(exif);
//ShowExif(exif);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//..
}
//..
private void FiltroExif(ExifInterface exif){
String attr="attr ---\n";
attr += getTagString(ExifInterface.TAG_DATETIME, exif);
attr += getTagString(ExifInterface.TAG_GPS_LATITUDE, exif);
attr += getTagString(ExifInterface.TAG_GPS_LATITUDE_REF, exif);
}
//..
但正如文档在某些时候所说:
这是一个用于在 JPEG 文件中读取和写入 Exif 标签的类。
有一些已知的方法可以读取图像的元数据,PNG
如果可以不使用任何不由 android 提供的库,虽然这不是必需的,但如果它不是由 android 提供的,它也是值得的。
如果有人做过类似的事情或帮助提供解决方案,则会对此进行评论:
作为最后的选择,它是审查 SKIA 代码并尝试在那里做一些事情“尽管如果可能的话,我不知道这是否至少在我的情况下会弄脏我的手”
更新:
- 我不需要将元数据写入图像,只需读取它即可。
- 如果是有时间创建或使用的外部库,避免使用过程中可能出现的bug(但不是必须的)。
- 它的使用示例或指向某种类型的文档的链接表明它适用于该目的也将受到赞赏(但这不是必需的)。
PNGJ怎么样?
这将与此类似
这是Metadata类,您可以在那里看到您可以获得的所有信息
您可以使用
Metadata Xtractor
,我个人将其用于文件.bmp
并且效果很好,这些是受支持的格式:你只需要创建一个对象
Metadata
并遍历它找到的标签:
这是文档