JOHND
JOHND

Reputation: 2777

Issue in Converting BufferedImage to img

I am writing code in which i am reading blob image from database and want to show that image on my jsp page .

through google i find out the solution that , byte[] can be converted to buffered image

but how can i use buffered image on jsp page...?

Upvotes: 3

Views: 1368

Answers (2)

tusar
tusar

Reputation: 3424

I would recommend write a servlet ImageProvider

<servlet>
    <servlet-name>showMyImage</servlet-name>
    <servlet-class>com.photo.gallery.ImageProvider</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>showMyImage</servlet-name>
    <url-pattern>/showMyImage</url-pattern>
</servlet-mapping>

Now use it in JSP page like :

<img src="showMyImage?imageFimeName=flowers.jpg" / >

Here goes the doGet implementation of ImageProvider

public void doGet(HttpServletRequest request, HttpServletResponse response) {
    /*Now you have the byte[] array by some way...
     * Lets call it imageBytes[] */
    response.setContentType("image/jpeg");
    response.setContentLength(imageBytes.length);
    response.getOutputStream().write(imageBytes);
}

Upvotes: 2

Denys S&#233;guret
Denys S&#233;guret

Reputation: 382474

The easiest is to send your image with a servlet or a different jsp.

If you use a JSP, be careful to simply send your binary without any html (or blank line). Like this for example :

response.setContentType("image/png");
OutputStream sos = response.getOutputStream();
BufferedImage myImage = stuff.getImage(request.getParameter("id"));
ImageIO.write(myImage, "png", sos);
sos.flush();
sos.close();

(here using javax.imageio.ImageIO)

Then you can simply use the image like this :

<img src="myservlet.jsp?id=somestuff">

Upvotes: 2

Related Questions