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