Jsp 将BuffereImage转换为img时出现问题
我正在编写代码,从数据库中读取blob图像,并希望在jsp页面上显示该图像 通过谷歌我找到了一个解决方案,字节[]可以转换成缓冲图像Jsp 将BuffereImage转换为img时出现问题,jsp,file-upload,bufferedimage,Jsp,File Upload,Bufferedimage,我正在编写代码,从数据库中读取blob图像,并希望在jsp页面上显示该图像 通过谷歌我找到了一个解决方案,字节[]可以转换成缓冲图像 但是如何在jsp页面上使用缓冲图像…?最简单的方法是使用servlet或其他jsp发送图像 如果您使用JSP,请注意只发送没有任何html(或空行)的二进制文件。例如: response.setContentType("image/png"); OutputStream sos = response.getOutputStream(); BufferedImage
但是如何在jsp页面上使用缓冲图像…?最简单的方法是使用servlet或其他jsp发送图像 如果您使用JSP,请注意只发送没有任何html(或空行)的二进制文件。例如:
response.setContentType("image/png");
OutputStream sos = response.getOutputStream();
BufferedImage myImage = stuff.getImage(request.getParameter("id"));
ImageIO.write(myImage, "png", sos);
sos.flush();
sos.close();
(这里使用javax.imageio.imageio)
然后您可以简单地使用如下图像:
<img src="myservlet.jsp?id=somestuff">
我建议编写一个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>
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);
}
您根本不需要
buffereImage
。它的用途完全不同(能够操纵(调整大小、倾斜、裁剪等)图像)。只需将字节[]
直接写入tusar回答的response.getOutputStream()
。但是我没有使用servlet…我使用的是Spring和Hibernate…当我们使用Spring时,您能告诉我如何在jsp中使用response.getOutputStream吗controller@BalusC:感谢您提供有关BuffereImage的信息
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);
}