如何在不在磁盘上写图像的情况下在JSF中显示缓冲图像?

时间:2016-11-05 08:03:22

标签: jsf bufferedimage uicomponents

我有一个缓冲的图像,我需要在JSF页面中显示它。 是否有可用的UI组件可以直接显示缓冲图像?我正在使用JSF 2.2。

1 个答案:

答案 0 :(得分:2)

如果您只有缓冲图像,则可以使用Omnifaces库,通过将byte[]传递给组件来渲染图像

<o:graphicImage value="#{bean.image}" dataURI="true" />

如果你有缓冲的图像,你可以像这样转换为字节数组:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write([image],[image_extension], baos);
byte[] imageToPassAsValueAttr = baos.toByteArray();

您还可以创建一个servlet来接收图像ID作为获取请求,从那时起,您可以获取参数值,找到资源并将图像内容写入响应。

@BalusC有一个很好的例子here