使用ImageIO.read()方法,加载图片为BufferedImage对象时,对于某些图片,会出现变红的case
问题重现
有问题的图片:
测试验证代码
debug截图如下:
问题兼容
不实用ImageIO来加载图片,改用Toolkit来实现图片读取,然后再将读取到的图片绘制到BufferedImage对象上
实测验证
为什么会出现这个问题:
ImageIO.read()方法读取图片时可能存在不正确处理图片ICC信息的问题,ICC为JPEG图片格式中的一种头部信息,导致渲染图片前景色时蒙上一层红色。