当前位置: 首页 > 面试题库 >

如何在JasperReport中将svg字节数组显示为图像?

堵昊焱
2023-03-14
问题内容

我有一个另存为的图像byte[],我想在JasperReport中将其显示为图像。我尝试从Java方法获取数据:

public InputStream getImage(){
  return new ByteArrayInputStream(getImageByteArray());
}

public Image getImage() throws IOException{
    return ImageIO.read(new ByteArrayInputStream(getImageByteArray()));
}

public String getImage(){
  return new String((new org.apache.commons.codec.binary.Base64()).encode(getImageByteArray()));
}

但它们似乎都没有起作用。

jrxml看起来像这样:

<image hAlign="Center" vAlign="Middle" isUsingCache="true" isLazy="true">
   <reportElement positionType="Float" x="0" y="0" width="164" height="32" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" uuid="c63c84a8-41c7-4ca3-8451-751d43fa8a9e"/>
   <imageExpression><![CDATA[$P{paramObject}.getImage()]]></imageExpression>
</image>

我尝试的某些事情会出现异常,有些会打印JasperReport,但是应该在其中显示图像的区域为空白。我知道图像数据在那里,因为我可以在JSF页面中显示它。图像数据是SVG数据。


问题答案:

假设你的图像字节编码为base64,则可以使用以下代码

<image>
    <reportElement/>
    <imageExpression>
        <![CDATA[javax.imageio.ImageIO.read(new java.io.ByteArrayInputStream(new sun.misc.BASE64Decoder().decodeBuffer("/9j/4AAQ .... "))) ]]>
    </imageExpression>
</image>


 类似资料:
  • 问题内容: 我正在将图像作为字节数组搜索到数据库中。我想使用标记 图像 将此内容显示为文件,但是在这里不起作用。 任何想法?谢谢你们! 问题答案: 使用以下格式 不要忘记添加一个消毒过滤器,以免被角度标记:

  • 问题内容: 我希望所有值都显示为十六进制 问题答案: 那他呢 该表达式是所谓的 列表理解 。基本上,这是编写简单循环并根据结果创建列表的非常紧凑的方式。 的内置函数采用一个字符串,并把它转换成一个整数其相应的Unicode代码点(在ASCII字符集这是与它们在ASCII表值中的字符)这是。 对于8bit字符串或unicode对象,它的对应内容与此相反。 然后,内建函数将整数简单地转换为十六进制表示

  • 问题内容: 使用Javascript,我正在对WCF服务进行AJAX调用,并且正在返回字节数组。如何将其转换为图像并显示在网页上? 问题答案: 我意识到这是一个旧线程,但是我设法通过Web服务上的AJAX调用做到了这一点,并认为我愿意分享… 我的页面中已经有图像: AJAX: 我的“ GetItemPreview”代码查询一个SQL Server,其中我将图像存储为base64字符串,并将该字段作

  • 问题内容: 我正在编写一个程序,该程序从服务器获取有关字节数组中图像的数据。我正在将这些数据转换为24位BMP格式(无论是jpeg,png,bmp还是8-24-32bpp)。首先,将其保存到HD中,然后将其加载到JLabel的Icon中。完美运行,尽管在某些情况下会出现以下异常: 对于此行(第二行) 在这些情况下: 图像不会加载到JLabel中,但是可以在我的HD上找到 转换不正确,因为有些“滑移

  • 问题内容: 我因此创建了一个数组: 我要这样做的是在512x512图像的中心显示一个红点。(至少从…开始,我想我可以从那里找出其余的内容) 问题答案: 您可以使用PIL创建(并显示)图像:

  • 问题内容: 我正在用HTML / JavaScript编写网页。我正在使用AJAX从后端下载图像。该图像表示为原始字节数组,而不是URL,因此我不能使用标准方法。 如何向用户显示上述图像? 问题答案: 尝试将此HTML代码段放入您提供的文档中: 然后,在JavaScript方面,您可以使用所谓的Data动态修改图片的属性。 或者,使用jQuery: 假定您的图像以PNG格式存储,这是非常流行的。如