A cor da imagem jpeg é alterada drasticamente depois de apenas ImageIO.read () e ImageIO.write ()
Eu tenho usado os métodos ImageIO.read () e ImageIO.write () em javax.imageio.ImageIO para ler e escrever imagens, e descobri que algumas cores das imagens são alteradas de forma estranha.
Mesmo que eu mude meu código para não fazer nada além de apenas ler imagens e escrevê-las (com jpeg, png, gif), todas essas novas imagens têm o mesmo problema.
Preciso adicionar algum outro código antes / depois dos métodos ImageIO.read/write?
Aqui está o código que usei:
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);
Meu ambiente:
java version "1.6.0_35"
MacOSX 10.8.2
Imagem original:
Uma das imagens depois de ler e escrever: