首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ExifTool读取元数据

用ExifTool读取元数据
EN

Stack Overflow用户
提问于 2014-06-12 05:31:08
回答 1查看 1K关注 0票数 3

我正在尝试使用Exiftool读取插图文件元数据值。我试过如下所示。

代码语言:javascript
复制
File[] images = new File("filepath").listFiles();
ExifTool tool = new ExifTool(Feature.STAY_OPEN);
for(File f : images) {
    if (f.toString().contains(".ai"))
    {
        System.out.println("test "+tool.getImageMeta(f, Tag.DATE_TIME_ORIGINAL));
    }
}
tool.close(); 

以上代码不打印任何值。我甚至试过这个。

代码语言:javascript
复制
public static final File[] IMAGES = new File("filepath").listFiles();
ExifTool tool = new ExifTool(Feature.STAY_OPEN);
for (File f : IMAGES) {
System.out.println("\n[" + f.getName() + "]");
System.out.println(tool.getImageMeta(f, Format.NUMERIC,
Tag.values()));
}

只打印{IMAGE_HEIGHT=2245, IMAGE_WIDTH=5393}。如何使用Exiftool调用元数据值。任何建议和参考链接将被高度赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-18 20:01:27

对于给定的API,它要么;

1-不包含您要寻找的标记。

2-文件本身可能没有填充该标记。

3-在调用exiftool.exe时,您可能希望使用更通用的标记命令重新创建自己的标记。

查看源代码,并找到包含API可用的所有标记的enum,这将向您展示您受限于什么。但是,是的,你可以考虑让你自己的类类似于你正在使用的类。我也在做同样的事。这样,您就可以将标记存储在可能的集合或HashMap中,而不是enum中,因此在标签选择上的限制要小得多。然后,您所要做的就是将您想要的标记的命令写入进程的OutputStream,然后从InputStream读取结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24177062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档