特定のJPGファイルを読み取ると、色が平坦になります。これは、jpgを読み取り、同じ画像を別のファイルに書き込む簡単な例です。
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class JPegReadTest {
public static void main(String[] args) {
if (args.length == 2) {
try {
BufferedImage src = ImageIO.read(new File(args[0]));
ImageIO.write(src, "jpg", new File(args[1]));
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.err.println("Usage: java JPegReadTest src dest");
}
}
}
たとえばhttp://www.flickr.com/photos/visualpanic/233508614/sizes/l/でこれを試してみると、宛先画像の色がソースファイルと異なります。何故ですか?それを修正する方法は?
また、画像をpngとして保存しようとしましたが、色も淡いです(したがって、色情報が正しく読み取られていないと想定しています)。