关于照片属性的获取,颜色模式
项目上遇到一个问题,提交照片需要对颜色模式进行判断需要SRGB格式的才可以。项目中以前也只是对像素大小进行了校验,在历史代码中也没有找到相关的帮助信息。
在网上找资料有帖子说需要引入metadata-extractor.jar包。引入之后发现提示报错
Exception in thread “main” java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException。
再次进行资料查找发现,metadata-extractor.jar包依赖于xmpcore-5.1.2.jar。引入xmpcore-5.1.2.jar之后,程序仍无法正常运行。于是去git获取源码进行,调试。
发现网上下载的metadata-extractor-2.12.0.jar源码存在问题(可能是本人下载的版本问题),于是修改源码重新打包。
附上本地打包的命令:
进入对应需要打jar的目录,输入命令: jar -cvf lkf.jar *.* (注意空格)
jar 是打jar的命令符;
-cvf 是打jar时的参数,写上就可以;
metadata-extractor.jar 是打成后的jar包名称;
*.* 是指将当前目录所有的文件都打入jar包,也可以输入*.class等。
例子:
现需要将C:\workspace\Auto\target\classes目录下的文件打jar包
1.打开cmd,cd C:\workspace\Auto\target\classes进入目录
2.输入命令: jar -cvf lkf.jar *.*或是jar -cvf metadata-extractor.jar *
3.C:\workspace\Auto\target\classes目录下metadata-extractor.jar
将打好的包重新引入项目。编译,调试成功。
感谢几位博主的资料:
1、https://blog.csdn.net/vendrin/article/details/62236576。让我知道使用metadata-extractor.jar去获取照片所有详细信息。
2、https://www.o6c.com/java/2017/07/16/1029.html 。帮我解决了java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException。
3、https://drewnoakes.com/code/exif/。提供源代码的博主。