使用ExifTool读取元数据

3
我试图使用Exiftool读取Illustrator文件的元数据值。我尝试了以下方法。
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调用元数据值?任何建议和参考链接都将不胜感激。

1个回答

0

对于给定的API,它可能:

1-不包含您要查找的标签

2-文件本身可能没有填写那个标签

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

查看源代码并找到包含API可用的所有标签的 enum ,这将显示您受到的限制。但是,您可能需要考虑创建一个类似于您正在使用的类的自己的类。这样,您可以将标签存储在集合或 HashMap 中,而不是 enum ,因此在标签选择方面受到的限制要少得多。然后,您所要做的就是将要使用的标签的命令写入进程的OutputStream中,然后从InputStream中读取结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接