イメージの読み取りと書き込みに 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
元の画像:
読み取りと書き込み後の画像の 1 つ: