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 调用元数据值。任何建议和参考链接都非常感谢。

4

1 回答 1

0

对于给定的 API,它要么;

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

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

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

查看源代码并找到enum包含 API 可用的所有标签的内容,这将向您展示您的限制。但是,是的,您可能需要考虑让自己的课程与您正在使用的课程相似。我正在做同样的事情。这样,您可以将标签存储在一组或HashMap而不是一个中enum,因此标签选择的限制要少得多。然后,您所要做的就是将您想要的标签的命令写入进程的 OutputStream,然后从 InputStream 中读取结果。

于 2014-09-18T20:01:27.497 回答