栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将BufferedImage转换为图像以在JSP上显示

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将BufferedImage转换为图像以在JSP上显示

首先,JSP是一种视图技术,提供了用于编写HTML / CSS /
JS的模板以及与后端Java代码进行交互以控制页面流和访问后端数据的功能。您的问题更多是在HTML中。

现在,要在HTML页面中显示图像,您需要HTML

<img>
元素。要定义/分配图像,只需使
src
属性指向URL。例如

<img src="url/to/image.jpg" />

(它可以相对于当前上下文,也可以是绝对URL,例如,以开头

http://

如果图片是动态图片(例如您的情况),则需要有一个

Servlet
侦听
url-pattern
匹配图片网址的图片。例如

<img src="imageservlet/image.jpg" />

(此处servlet显然要映射到的URL模式,

/imageservlet/*
图像标识符(此处为文件名
request.getPathInfo()
)可以通过来获得)

<imgsrc>
会触发一个GET请求,所以你只需要执行
doGet()
这个servlet的方法。要发送HTTP响应,您所需要做的就是将一些内容写入
OutputStream
响应的内容
Content-Type
Content-Length
以及代表该内容的一组响应标头(和/或
Content-disposition
)。您可以使用
ImageIO#write()
BufferedImage
来的
OutputStream

您可以在此处找到此类图像servlet的基本示例。您只需要替换

Files#copy()
ImageIO#write()

response.setContentType("image/png");ImageIO.write(bufferedImage, "png", response.getOutputStream());

作为完全不同的替代方法,您还可以让servlet将图像转换为base64编码的字符串,并将其传递给JSP:

ByteArrayOutputStream output = new ByteArrayOutputStream();ImageIO.write(bufferedImage, "png", output);String imageAsbase64 = base64.getEnprer().enpreToString(output.toByteArray());request.setAttribute("imageAsbase64", imageAsbase64);request.getRequestDispatcher("/WEB-INF/some.jsp").forward(request, response);

最后,使用数据URI方案在转发的JSP中显示它,如下所示:

<img  />

您只需要记住,这不会给服务器或客户端提供缓存图像的机会。因此,如果图像不是临时的,则此方法效率很低。




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368249.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号