Преобразовать BufferedInputStream в изображение [дубликат]

На этот вопрос уже есть ответ здесь:

ImageIO.read возвращает ноль в байтовом массиве 1 ответ

У меня проблемы с превращением моего объекта в буферизованное изображение, чтобы я мог его использовать. Я'я получаю блоб (изображение jpg) из своей базы данных, которую я загрузил с помощью inputtream. В моей базе данных он хранится как BufferedInputStream, который я замечаю. Я получаю шарик просто отлично, это куча странных символов и говорит, что это JPG, поэтому изображение должно быть в порядке. Кто-нибудь может определить, что яя делаю неправильно? Может быть, я конвертирую это неправильно? В image = ImageIO.read (new ByteArrayInputStream (data)); Изображение возвращает ноль.

@GET
@Path("{id}")
 @Produces("image/*")
public Response post(@PathParam("id") String id) throws IOException {
    Connection con = connection();
    Blob blob = getPhoto(con);
    BufferedImage image = null;
    byte[] data = null;
    int blobLength = 0;
    try {
        blobLength = (int) blob.length();
        data = blob.getBytes(1, blobLength);
        image = ImageIO.read(new ByteArrayInputStream(data));
    //  ImageIO.write(image, "JPEG", new File("C:/Users/Nicolas/Desktop/image.jpg"));
    } catch (SQLException e2) {
        e2.printStackTrace();
    }  

    return Response.ok(image).build();
}

Как я пишу в базу данных

public void postPhoto(Connection con, InputStream uploadedInputStream){

String mySQL = "INSERT INTO photos (photo) values (?)";
PreparedStatement pStmt = con.prepareStatement(mySQL);
pStmt.setBlob(1, uploadedInputStream);
pStmt.execute();
}

Как отправить файл в мой сервлет

var fileInput = document.getElementById('file');
var file = fileInput.files[0];
var formData = new FormData();
formData.append("file", file);

var parameters="first="+firstName+"&last="+lastName+"&file="+file;

xmlhttp.open("post","http://localhost:8080/restService/api/submitinfo",true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(formData);

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

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