Я использую методы ImageIO.read() и ImageIO.write() в javax.imageio.ImageIO для чтения и записи изображений, и я обнаружил, что цвет некоторых изображений сильно изменился.
Даже если я изменю свой код, чтобы ничего не делать, кроме как просто читать изображения и писать их (с помощью 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
Оригинальное изображение:
Одно из изображений после чтения и записи: