Java 如何使用JasperReports在Oracle中查看blob列中的图像?
我尝试在报告布局中定义一个image元素,并将type设置为java.io.Inputstream,但这不起作用,我还尝试将type设置为java.awt.image,但两者都不起作用,我得到的例外是Java 如何使用JasperReports在Oracle中查看blob列中的图像?,java,oracle,jasper-reports,Java,Oracle,Jasper Reports,我尝试在报告布局中定义一个image元素,并将type设置为java.io.Inputstream,但这不起作用,我还尝试将type设置为java.awt.image,但两者都不起作用,我得到的例外是 java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image 或 我也试着用谷歌搜索,但结果就是我现在正在做的 感谢您的帮助。您没有看到如何调用blob将图像嵌入到报表代码中 使用 使用转换流 例如:
java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image
或
我也试着用谷歌搜索,但结果就是我现在正在做的
感谢您的帮助。您没有看到如何调用blob将图像嵌入到报表代码中
javax.imageio.ImageIO.read( blob.getBinaryStream() )
这将返回一个实例,它的子类java.awt.Image
,应该是一个适合嵌入报表中的对象
示例中显示的blob
变量必须使用报告中的适当变量(表示所需列中的数据)
另见:
<p:graphicImage value="#{controller.myImage}" style="width:200px;width:500px" />
谢谢,这只适合我。最初,我将blob传递给report参数,而不进行任何类型的强制转换或流转换。
InputStream is = new ByteArrayInputStream((byte[]) yourBlobData);
myImage = new DefaultStreamedContent(is, "image/png");
<p:graphicImage value="#{controller.myImage}" style="width:200px;width:500px" />