Java 图片Exif 和 JFIF转 jpeg解决办法

今天公司报错如下:

  javax.imageio.IIOException: Invalid icc profile: found only empty markers 
原因:

查了stackoverflow这是因为JDK本身的一个BUG,转换出错。可以查看Orcale官网信息

解决:

这个Bug可以使用Oracle的一个Image扩展库,JAI(Java Advanced Imaging) 来解决。下载地址

步骤:

  • 下载对应文件
  • 拷贝三个文件:
    1. jai_codec.jar
    2. jai_core.jar
    3. mlibwrapper_jai.jar
  • 添加到你的ClassPath

代码:

SeekableStream seekableStream =newFileSeekableStream(file);
ParameterBlock pb =newParameterBlock();
pb.add(seekableStream);
BufferedImage image = JAI.create("jpeg",pb).getAsBufferedImage();

运行,Bug解决!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容