Warum Java ImageIO JPEG-Farben abflacht

Wenn ich bestimmte JPG-Dateien lese, werden die Farben reduziert. Hier ist ein einfaches Beispiel, das ein JPG liest und dasselbe Bild einfach in eine andere Datei schreibt.

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

Wenn Sie dies zum Beispiel mit versuchenhttp://www.flickr.com/photos/visualpanic/233508614/sizes/l/ unterscheiden sich die Farben des Zielbilds von der Quelldatei. Warum das? Wie man es repariert?

Ich habe auch versucht, das Bild als PNG zu speichern, aber die Farben sind auch langweilig (vorausgesetzt, die Farbinformationen werden nicht richtig gelesen).

Antworten auf die Frage(5)

Ihre Antwort auf die Frage