关于javax.imageio.IIOException: Invalid icc profile: bad sequence number

魏鸿
2023-12-01

今天碰到项目有客户出现这个错误, 测试网也有, 但是有时候就没有, 很奇怪的问题。 查下了是JDK 的一个BUG。


BUG 地址: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6404011

大概意思是读取图片流的时候, 如果图片本身格式有问题, 他就会报 Invalid icc profile 错误。官网说是1.6已经修复了, 但是我已经是1.6 版本了, 没搞明白怎么回事。

然后找到一篇帖子说重写image可以解决。 参考地址:http://feicer.iteye.com/blog/803138#bc2345723


类似

                    File doc = new File(file);
                    FileInputStream inFile = new FileInputStream(doc);
                    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(inFile);
                    BufferedImage image = decoder.decodeAsBufferedImage();
                   
                    FileOutputStream outFile = new FileOutputStream(doc);
                    ImageIO.write(image, ‘JPEG’, outFile);  
                    inFile.close();
                    outFile.close();

                 BufferedImage srcImage = ImageIO.read(doc);

                // do Something (例如缩小图片)




 类似资料: