一尘不染

在jsp中显示多个BufferedImage

jsp

我有100个BufferedImage对象ArrayList,我想在一个jsp中显示所有这些图像。

<%
  ArrayList<BufferedImage> list = GlobalData.getImageBufferArrayList();
%>

 </head>
 <body>
 <ul>
 <li><img alt="" src=""> </li>//image1
 <li><img alt="" src=""> </li>//image2
 <li><img alt="" src=""> </li>//image3
   ...
   ..
   ...
 </ul>
</body>

我不知道要在src这些图片上放什么

是否可以将图像数据作为src图像放置。(就像我们从canvashtml中获取图像数据一样)

或者是他们显示这些图像的任何体面方式。


阅读 258

收藏
2020-06-10

共1个答案

一尘不染

您必须将图像文件嵌入HTML文档中,或者通过单独的HTTP请求使其可用。对于前者,您可以使用data:URI方案。对于后者,您必须提供一个单独的servlet,或在同一servlet中提供一个单独的代码路径,以提供图像文件。它可能是从一些短暂的缓存中执行的,因此您不必再次执行相同的代码即可获取这些图像。

通常,嵌入数据的大小开销与图像的大小成正比,而单独的请求的资源开销与HTTP请求的数量成正比。对于小图像,前者可能更好,而对于大图像,后者会更快。实现嵌入应该比实现合理的图像缓存更容易,但是我不确定100%是否所有浏览器都支持数据方案。

无论哪种情况,您都必须BufferedImage先将序列化为某个字节序列,可能要ImageIO.write结合使用ByteArrayOutputStream

2020-06-10