How to view an image from blob column in Oracle wi

2019-01-19 23:49发布

I tried defining an image element in the report layout and setting type to java.io.Inputstream but that doesn't work, also I tried setting to java.awt.Image and neither works, the exception that I'm getting is

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image

or

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.io.InputStream

Also I tried to google but the results are that what I'm doing right now.

Thanks for your help.

2条回答
做自己的国王
2楼-- · 2019-01-20 00:12
InputStream is = new ByteArrayInputStream((byte[]) yourBlobData);
myImage = new DefaultStreamedContent(is, "image/png");

in jsf page;

<p:graphicImage value="#{controller.myImage}" style="width:200px;width:500px" />
查看更多
老娘就宠你
3楼-- · 2019-01-20 00:31

Without seeing how you're calling the blob to embed the image within your report code...

  1. Use blob.getBinaryStream().
  2. Convert the stream using javax.imageio.ImageIO.read( InputStream ).

For example:

javax.imageio.ImageIO.read( blob.getBinaryStream() )

This will return an instance of BufferedImage, which subclasses java.awt.Image, and should be a suitable object to embed in the report.

The blob variable shown in the example will have to use the appropriate variable from the report (that represents the data from the desired column).

See also:

查看更多
登录 后发表回答