Почему Java ImageIO сглаживает цвета JPEG

Когда я читаю определенные файлы 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, но цвета в нем тоже мягкие (поэтому при условии, что информация о цвете не читается должным образом).

Ответы на вопрос(5)

Ваш ответ на вопрос