http://www.isco.com/webproductimages/appBnr/bnr1.jpg
我使用a website来查看图片的元数据。在这个网站上,它显示了图像的所有信息。我想知道如何在android中获取上面图像的“标题”标签。
我在这里找到了仅适用于iOS的类似问题:How to get image metadata in ios
但是我不知道如何在android上获取图像的“元数据”。 ExifInterface
只提供一些信息。但是我无法用它来获得“标题”标签。
你能为android for image中的元数据提供任何代码片段吗?
答案 0 :(得分:9)
从此处给出的链接下载元数据提取器...... click to download the library 选择版本2.5.0.RC-3.zip
解压缩jar文件夹
并将jar导入到项目中的libs文件夹中,然后执行以下代码
try {
InputStream is = new URL("your image url").openStream();
BufferedInputStream bis = new BufferedInputStream(is);
Metadata metadata = ImageMetadataReader.readMetadata(bis,true);
for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
System.out.println(tag);
}
}
}
catch (ImageProcessingException e){}
catch (IOException e) {}
答案 1 :(得分:0)
如果要检索有关图像的元数据信息ExifInterface正是您要查找的内容。以下是如何使用此接口的一个很好的示例:http://android-er.blogspot.com/2009/12/read-exif-information-in-jpeg-file.html
但是如果你想要检索在线图像的信息,我担心它还不可能。
答案 2 :(得分:-1)
如果您想从Android项目中的图像中检索元数据,则可以借助https://github.com/drewnoakes/metadata-extractor
使用
将其实现implementation 'com.drewnoakes:metadata-extractor:2.12.0'
完整代码如下
private static String getImageMetaData(Uri image1) {
try {
InputStream inputStream = FILE_CONTEXT.getContentResolver().openInputStream(image1);
try {
image1.getEncodedUserInfo();
Metadata metadata = ImageMetadataReader.readMetadata(inputStream);
for (Directory directory1 : metadata.getDirectories()) {
if (directory1.getName().equals("Exif IFD0")) {
for (Tag tag : directory1.getTags()) {
if (tag.getTagName().equals("Date/Time")) {
return tag.getDescription();
}
}
}
}
} catch (ImageProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}