我正在尝试使用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调用元数据值。任何建议和参考链接都非常感谢。
答案 0 :(得分:0)
对于给定的API,它要么;
1 - 不包含您要查找的标签
2 - 文件本身可能没有填充该标签
3 - 您可能希望在调用exiftool.exe
查看源代码,找到包含API可用的所有标记的enum
,它会向您显示您受限制的内容。但是,你可能想考虑让你自己的班级类似于你正在使用的班级。我正在做同样的事情。这样,您可以将标记存储在一组或HashMap
而不是enum
中,因此在标记选择方面的限制要少得多。然后,您所要做的就是将所需的标记命令写入进程的OutputStream,然后从InputStream中读取结果。