Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
216 views
in Technique[技术] by (71.8m points)

java - How to view an image from blob column in Oracle with JasperReports?

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...