使用ExifTool读取元数据

时间:2014-06-12 05:31:08

标签: java image metadata adobe-illustrator exiftool

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

1 个答案:

答案 0 :(得分:0)

对于给定的API,它要么;

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

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

3 - 您可能希望在调用exiftool.exe

时使用更通用的标记命令重新创建自己的标记

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

相关问题