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