¿Por qué Java ImageIO aplana los colores JPEG?

Cuando leo ciertos archivos JPG, los colores se aplanan. Aquí hay un ejemplo simple que lee un jpg y simplemente escribe la misma imagen en otro archivo.

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

Si intentas esto con por ejemplohttp://www.flickr.com/photos/visualpanic/233508614/sizes/l/ , los colores de la imagen de destino difieren del archivo de origen. ¿Porqué es eso? ¿Como arreglarlo?

También se intentó guardar la imagen como png, pero los colores también son suaves (por lo que suponiendo que la información del color no se lea correctamente).

Respuestas a la pregunta(5)

Su respuesta a la pregunta