将图像数据 InputStream 转换为字符串并从该字符串返回图像不给出图像

Convert image data InputStream to string and from this string back to image does not gives the image

Cq5 图像组件具有二值图像数据,我要求将此数据暴露在api。

为此,我尝试获取输入流并将其读取为字符串。

InputStream is = jcrnode.getProperty(JcrConstants.JCR_DATA).getBinary().getStream();

String imageData = jcrnode.getProperty(JcrConstants.JCR_DATA).getString();

尝试将字符串写入 FileOutputStream 时,我没有得到图像。

在尝试手动下载 jcr:data 并打开文件时,图像查看器会提供图像。 但是当把它转换成字符串并返回时对我不起作用。对此有何建议。

谢谢@i.net 能够按照您上面的建议解决。

StringBuilder dataUri = New StringBuilder(); dataUri.append("数据:image/jpeg;base64"); dataUri.append(StringUtils.newString Utf8(Base64.encodeBase64(imageByteArray,false)));

dataUri.toString()是可以作为嵌入图片的字符串。

下面的示例 html 以渲染 base64 图像

<div>
  <p>refer wiki</p>
  <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
    AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
        9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
</div>