Java 将图像数据InputStream转换为字符串,并从该字符串返回到图像,但不提供图像

Java 将图像数据InputStream转换为字符串,并从该字符串返回到图像,但不提供图像,java,image,aem,fileinputstream,Java,Image,Aem,Fileinputstream,Cq5图像组件具有二进制图像数据,我要求在api中公开这些数据 为此,我尝试获取输入流并将其作为字符串读取 InputStream is = jcrnode.getProperty(JcrConstants.JCR_DATA).getBinary().getStream(); String imageData = jcrnode.getProperty(JcrConstants.JCR_DATA).getString(); 当尝试将字符串写入FileOutputStream时,我没有得到图像

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数据URI=新的StringBuilder(); append(“数据:image/jpeg;base64”); append(StringUtils.newString Utf8(Base64.encodeBase64(imageByteArray,false))


dataUri.toString()是可以用作嵌入引用图像的字符串。

为什么需要将其转换为字符串?字符串看起来像垃圾。不确定为什么会这样做,但可以使用
string imageData=Base64.encodeBytes(jcrnode.getProperty(JcrConstants.JCR_DATA))然后在中使用它`" />. 这就是引用嵌入图像的方式。需要使用api将图像jcr:数据公开给其他要使用的环境,并发送图像文件。关于实现这一目标的最佳方法的任何建议。我试着对图像进行二进制编码、解码并返回到图像。在java 6上对我来说很难。任何examplesImage数据都可以作为来自API的base64编码字符串公开。请参阅我上面关于如何做的评论。如何将图像数据转换为Base64编码字节到数据uri。是的,这几乎是关键所在。您必须对HTTP传输的二进制文件进行Base64编码。您甚至可以从DAM属性获取MIME类型,使其更通用。