通过浏览国外的帖子,找到了大概原因:
JPEG文件中的ICC_PROFILE段包含重复的序列号。编写它的软件以某种方式被破坏。但是,图像数据仍然应该是可读的,即使颜色可能看起来不完全正确(常规的图片查看软件没看不出区别)。
解决办法就是加入以下依赖:
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-jpeg</artifactId>
<version>3.4.1</version>
</dependency>
加入以上依赖,并且无需修改任何之前的代码。
相关参考:
https://stackoverflow.com/questions/32023809/javax-imageio-iioexception-invalid-icc-profile-duplicate-sequence-numbers
https://github.com/haraldk/TwelveMonkeys
https://search.maven.org/artifact/com.twelvemonkeys.imageio/imageio-jpeg/3.4.1/jar
http://blog.xqlee.com/article/622.html