我正在尝试使用Exiftool读取插图文件元数据值。我试过如下所示。
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(); 以上代码不打印任何值。我甚至试过这个。
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调用元数据值。任何建议和参考链接将被高度赞赏。
发布于 2014-09-18 20:01:27
对于给定的API,它要么;
1-不包含您要寻找的标记。
2-文件本身可能没有填充该标记。
3-在调用exiftool.exe时,您可能希望使用更通用的标记命令重新创建自己的标记。
查看源代码,并找到包含API可用的所有标记的enum,这将向您展示您受限于什么。但是,是的,你可以考虑让你自己的类类似于你正在使用的类。我也在做同样的事。这样,您就可以将标记存储在可能的集合或HashMap中,而不是enum中,因此在标签选择上的限制要小得多。然后,您所要做的就是将您想要的标记的命令写入进程的OutputStream,然后从InputStream读取结果。
https://stackoverflow.com/questions/24177062
复制相似问题