jlag
jlag

Reputation: 11

Spring MVC Thymeleaf: Displaying Buffered Image to HTML file

Can't display the image in the html file. Where did I go wrong?

@RequestMapping(value = "/image/{usr.id}", headers = "Accept=image/jpeg, image/jpg, image/png, image/gif", method = RequestMethod.GET)
public @ResponseBody BufferedImage getImage(@PathVariable("usr.id") Long id) {
    Attachment att = attSvc.getPicById(id);

    try {

        InputStream in = new ByteArrayInputStream(att.getAttachmentFile());
        return ImageIO.read(in);
    } catch (IOException e) {
        System.out.println("ERROR:" + e);
        throw new RuntimeException(e);
    }
}

Please tell me if you need more references! Thank you so much.

Upvotes: 1

Views: 1764

Answers (1)

Faraj Farook
Faraj Farook

Reputation: 14875

This should solve your issue.

...
public @ResponseBody byte[] getImage(@PathVariable("usr.id") Long id)  {
   ...  
      InputStream in = new ByteArrayInputStream(att.getAttachmentFile());
      BufferedImage img = ImageIO.read(in); 
      ByteArrayOutputStream bao = new ByteArrayOutputStream();
      ImageIO.write(img, "jpg", bao);
      return bao.toByteArray();
   ...

Upvotes: 1

Related Questions