java - 使用 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 "+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 调用元数据值。任何建议和引用链接都将受到高度赞赏。

最佳答案

对于给定的 API,它要么;

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

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

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

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

关于java - 使用 ExifTool 读取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24177062/

相关文章:

c++ - 在 C++ 中读取/操作图像

java - ScrollView 内的 LinearLayout 扩展得不够远

CSS 打印预览 - 显示图像/链接 URL

java - 无法读取 VR 路径注册表 - Selenium Webdriver

image - Chrome 将 jpg 资源解释为文档

java - 安卓 : Update data on car audio

windows - Windows 是否支持每个文件的元数据?

mysql - 在 MySQL 数据库中存储非关系元数据

java - 是否可以防止通过 Hibernate 读取数据库行?

java - 如何在调整其父 ViewGroup 后调整 subview 高度?