Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ExifTool读取元数据_Java_Image_Metadata_Adobe Illustrator_Exiftool - Fatal编程技术网

Java 使用ExifTool读取元数据

Java 使用ExifTool读取元数据,java,image,metadata,adobe-illustrator,exiftool,Java,Image,Metadata,Adobe Illustrator,Exiftool,我正在尝试使用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 "+too

我正在尝试使用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\u HEIGHT=2245,IMAGE\u WIDTH=5393}
。如何使用Exiftool调用元数据值。任何建议和参考链接都非常感谢

对于给定的API,它:

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

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

3-调用
exiftool.exe

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