今天碰到项目有客户出现这个错误, 测试网也有, 但是有时候就没有, 很奇怪的问题。 查下了是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 (例如缩小图片)
本文探讨了JDK中关于读取图片流时遇到的InvalidICCProfile错误,详细介绍了错误原因及解决方案,包括重写图片文件以解决该问题。
1582

被折叠的 条评论
为什么被折叠?



