我一直在 javax.imageio.ImageIO 中使用 ImageIO.read() 和 ImageIO.write() 方法来读取和写入图像,我发现一些图像的颜色发生了奇怪的变化。
即使我将代码更改为只读取图像并写入它们(使用 jpeg、png、gif),所有这些新图像都有相同的问题。
我是否需要在 ImageIO.read/write 方法之前/之后添加任何其他代码?
这是我使用的代码:
File f = new File("obw.jpg");
BufferedImage bi = ImageIO.read(f);
FileOutputStream fos2 = new FileOutputStream("obw2.jpg");
ImageIO.write(bi, "JPG", fos2);
FileOutputStream fos3 = new FileOutputStream("obw3.gif");
ImageIO.write(bi, "GIF", fos3);
FileOutputStream fos4 = new FileOutputStream("obw4.png");
ImageIO.write(bi, "PNG", fos4);
我的环境:
java version "1.6.0_35"
MacOSX 10.8.2
原图:
读写后的图像之一: