将多个图像写入byteArrayOutputStream

3

我需要将多个图片添加到输出流中,并在JSF中显示这些图片。

示例代码:

List<inputStream> images = list of inputstream - each image is one input stream

ByteArrayOutputStream stream = new ByteArrayOutputStream()
for(inputStream iStream: images){
    stream.write(IOUtils.toByteArray(iStream);
}
return stream.toByteArray();

现在只显示第一张图片,但不显示其他图片。
请帮我解决如何传递多个图片并在JSP中显示。

你需要 ByteArrayOutputStream 列表。 - Baby
啊,我的意思是 byte[] 列表。 - Baby
1个回答

3
你可以尝试像这样做:

你可以尝试像这样做:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
List<byte[]> imagesByteList = new List<byte[]>;
for(inputStream iStream: images){
    stream.write(IOUtils.toByteArray(iStream);     
    imagesByteList.add(stream.toByteArray());
    stream.reset();
}
return imagesByteList; // here you get all your image in bytes array form

感谢回复...所以它返回一个byte[]列表..在我的JSP中,我必须迭代并显示它吗?但是我应该只在我的JSP中有一个链接,通过单击该链接显示所有图片。 - TP_JAVA
是的。我猜这应该不是个问题,对吧?你可以在页面加载时处理迭代。 - DnR
但是这些图像是检查正面和背面的...因此单击单个链接必须显示两个图像... - TP_JAVA
嗯,我不明白。 - DnR
由于这是一个列表..我必须迭代,每个图像将只有单个链接,但我想在单个链接上点击时显示所有图像。 - TP_JAVA
我猜你可以使用单个链接来传递图像列表。看一下这个:链接 - DnR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接