ireport 添加Base64为图片,预览编译可展示,程序运行不展示,帮忙解决。

第一步



<![CDATA[new java.io.ByteArrayInputStream(org.apache.commons.codec.binary.Base64.decodeBase64($P{certPhoto}.getBytes()))]]>

第二步,Java代码
HashMap a = new HashMap();
a.put("parameter1","/9j/4AAQSkZJRgABAQEAYA .......")

可以预览编译显示,但是程序运行导出却不能显示啦???

http://blog.csdn.net/wujiaohua888168/article/details/50821355

兄台,我就是按照这个整的啊, 出不来啊,能远程指导下吗? 联系方式:QQ 465516421

<![CDATA[new java.io.ByteArrayInputStream(org.apache.commons.codec.binary.Base64.decodeBase64($P{certPhoto}.getBytes()))]]>
,这个地方建议加上编码getBytes

Base64方式显示图片有什么好处么?
我都是已文件流的方式直接读图片展示, 感觉还可以啊。

后台:
InputStream imgsrc = new FileInputStream("图片路径");
paramMap.put("LOGO", imgsrc);

ireport:
image Excepression: $P{LOGO} 这里是以参数中得到。
Expression Class: java.io.InputStream

前提, ireport 要先导入一个Image组件。

Base64只适用于小文件,大文件不适合,建议不要用这种方式,还是用文件流吧