Dlaczego Java ImageIO spłaszcza kolory JPEG

Kiedy czytam pewne pliki JPG, kolory są spłaszczane. Oto prosty przykład, który czyta jpg i po prostu zapisuje ten sam obraz w innym pliku.

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");
        }
    }
}

Jeśli spróbujesz tego na przykładhttp://www.flickr.com/photos/visualpanic/233508614/sizes/l/ , kolory obrazu docelowego różnią się od pliku źródłowego. Dlaczego? Jak to naprawić?

Próbowałem także zapisać obraz jako png, ale kolory są w nim również mdłe (więc zakładając, że informacje o kolorze nie są poprawnie odczytywane).

questionAnswers(5)

yourAnswerToTheQuestion