Я думаю, что понял вашу проблему. Я проверил изображение, которое вы связали (http://www.jthink.net/jaikoz/scratch/front.jpg). Это связано со стандартами Exif и JFIF.
когда вы делаете что-то вроде ImageIO.read('some file')
, он вызывает реализацию Sun jpeg по умолчанию com.sun.imageio.plugins.jpeg.JPEGImageReader
. Который раньше имел проблемы с загрузкой файлов JFIF BUG 6488904 (проверьте комментарий в конце).
Согласно spec , как Exif, так и
JFIF требует, чтобы их соответствующие
Сегмент маркера приложения должен быть
первый сразу после SOI (APP1 и APP0)
так что на самом деле это невозможно в
спецификации для файла JPEG, чтобы быть совместимым
с обоими стандартами.
Хотя об этом сообщалось давно
Обходной путь должен использовать библиотеку JAI (https://jai.dev.java.net/binary-builds.html#Release_builds). Я использую Java (без собственного ускорения) версия.
SeekableStream seekableStream = new FileSeekableStream(new File("front.jpg"));
ParameterBlock pb = new ParameterBlock();
pb.add(seekableStream);
BufferedImage image = JAI.create("jpeg", pb).getAsBufferedImage();
надеюсь, это поможет.