Java api to exiftool

我很有兴趣用java api或类似的东西解析exiftool结果。 我一直在研究,但我没有找到任何例子。例如,我怎样才能在我的java项目中获得这些结果?   ExifTool版本号:8.22      文件名 :   ExifTool.jpg      目录:t / images文件      大小:24 kB文件修改日期/时间 等等......我正在寻找'如何'或类似的东西。     
已邀请:
ExifTool(for Java)旨在成为Phil Harvey的ExifTool的简单易用且强大的Java抽象。在imgscalr项目保护伞下孵化了一段时间之后,我刚刚在上周发布了第一个公开发布。 该项目属于商业友好型Apache 2许可证。 我对库的目标不仅仅是从调用者中抽象出外部进程执行代码(就像大多数其他抽象层似乎都是这样),而是实际设计一个包装器如此紧密集成和弹性(我会澄清我的内容)你的ExifTool类的实例与ExifTool本身是用Java编写的完全相同。 在这个初始版本中,我支持读取标签数据(将在未来的版本中添加写入),它就像这样简单:
File image = // path to some image
ExifTool tool = new ExifTool();

Map<Tag, String> valueMap =
    tool.getImageMeta(image, Tag.GPS_LATITUDE, Tag.GPS_LONGITUDE);

System.out.println("Lat: " + valueMap.get(Tag.GPS_LATITUDE) +
    "tLong: " + valueMap.get(Tag.GPS_LONGITUDE));
在新的“守护进程模式”(-stay_open True cmd line)中使用ExifTool也是支持的,并且启用对它的支持就像创建ExifTool实例一样简单:
ExifTool tool = new ExifTool(Feature.STAY_OPEN);
有关如何使用ExifTool类的文档非常广泛,涵盖从设计到性能到线程安全的所有内容。 除了简单地使用Java中的ExifTool之外,该类还采用了大量的预防措施来最大限度地减少运行时问题,并正确捕获和报告以文档记录的方式出现的任何和所有错误(而不是让惊喜异常冒出来)来自核心Java类)。 我对这种异常处理和错误恢复非常迂腐,因为该类旨在允许您在高可用性环境(如繁忙的Web应用程序)中使用ExifTool。我不仅想要包装简单的Process对象,然后如果出现爆炸,我会举起双手。我知道自己(以及使用该类的其他人)需要一个设计良好的API,以便轻松恢复错误。 例如,尝试在守护进程模式下使用ExifTool将导致该类实际检查ExifTool的底层安装是否支持该功能,并抛出UnsupportedFeatureException,并提供有关如何解决该问题的建议(如果不支持)。 除了前置条件检查之外,为了确保类的使用(即在守护进程模式下)不会泄漏本机OS进程以及用于与它们通信的Input / OutputStream,该类提供了一个自动清理线程,在指定的不活动间隔(默认为10分钟)之后,将彻底关闭外部进程和读/写流,使ExifTool的空闲实例轻量级,易于重复使用。 所有资源在下次调用类时重新初始化,以解析更多元数据,因此无需抛出并重新创建新实例。此外,清理线程仅在长时间不活动后执行,而不是在设定的时间表上执行。您可以将间隔设置为您想要的任何内容,或者完全关闭清理线程并自行管理清理(只需调用close())。 这些设计都是我最终目标的一部分,即将ExifTool集成到Java应用程序中,无缝,高效且简单。 您可以查看主项目页面以获取有关项目,用途,来源,下载链接等的更多信息,或者您可以直接跳转到GitHub并查看代码(如果您愿意)。     
检查ExifTool论坛中的响应: http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,2697.0.html     
我不知道exiftool,但我之前使用过MediaUtil来读取和编写java中的exif标签(我用它来进行自动jpeg图像旋转)     

要回复问题请先登录注册