将图像数据InputStream转换为字符串并从此字符串返回图像不会给出图像
问题描述:
Cq5图像组件具有二进制图像数据,我需要将这些数据暴露在api中。将图像数据InputStream转换为字符串并从此字符串返回图像不会给出图像
为此,我尝试获取输入流并将其作为字符串读取。
InputStream is = jcrnode.getProperty(JcrConstants.JCR_DATA).getBinary().getStream();
String imageData = jcrnode.getProperty(JcrConstants.JCR_DATA).getString();
当试图将字符串写入FileOutputStream我没有得到图像。
在尝试手动下载jcr:数据并打开文件图像查看器时提供图像。 但是,将其转换为字符串时,返回不适用于我。对此有任何建议。
答
Thanks @ i.net能够根据您的建议解决上述问题。
StringBuilder dataUri = New StringBuilder(); dataUri.append(“data:image/jpeg; base64”); dataUri.append(StringUtils.newString Utf8(Base64.encodeBase64(imageByteArray,false)));
dataUri.toString()是可用作嵌入参考图像的字符串。
+0
是的,这几乎是关键你需要Base64编码二进制文件进行HTTP传输,你甚至可以从DAM属性中获得MIME类型以使其更通用。 –
为什么你需要将它转换为字符串?该字符串看起来像垃圾。 –
不知道为什么会这样做,但你可以使用'String imageData = Base64.encodeBytes(jcrnode.getProperty(JcrConstants.JCR_DATA));'然后在'
需要将jcr:data的数据暴露给其他需要使用的环境,发送图像文件,并提供任何有关如何实现这一目的的最佳方式的建议,我尝试编码图像二进制和解码并返回到图像。 。任何示例 – ADM