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解决!

你可能感兴趣的:(Java 图片Exif 和 JFIF转 jpeg解决办法)