Звучит просто, верно? Используйте
ImageIO.read(new ByteArrayInputStream(bytes));
Вот морщина. По какой-то причине он определяет jpeg как bmp, и это первый ImageReader, возвращаемый при вызове
ImageInputStream iis = ImageIO.createImageInputStream(new ByteArrayInputStream(bytes));
Iterator<ImageReader> readers=ImageIO.getImageReaders(iis);
Это приводит к искажению изображения. Есть ли способ сказать через java, если не смотреть прямо на байты заголовка, а если нет, кто-нибудь знает хорошую ссылку на заголовки байтов для разных изображений?
Просто сообщаю вам, ребята, что я все еще работаю над этим. Я дам вам знать, если / когда у меня будет ответ. Я благодарю всех вас за ваши ответы.