字符串到图像java

字符串到图像java,java,Java,我必须将字符串转换为图像,字符串如下所示: !?本月24日的研究结果表明,本月20日日的的研究结果是是该月的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的自自自自自自自本本本本本本本本本月的自自自自自自自自自自本本本本本月的自自自自自自本月20日日日日的自自自本本本本本本本本本月的研究的自自自自自自自自自自自本本本本

我必须将字符串转换为图像,字符串如下所示:

!?本月24日的研究结果表明,本月20日日的的研究结果是是该月的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的一名医学院的自自自自自自自本本本本本本本本本月的自自自自自自自自自自本本本本本月的自自自自自自本月20日日日日的自自自本本本本本本本本本月的研究的自自自自自自自自自自自本本本本本本本本本本本本本月的自自自自自自自自自自自自自自自自自自自自自自自自本本本本本月的的ŽeýGåšvžžžGŽs™æ÷òòF“7ù1|Ìùùùùùùùùùùùùùùùùùùùùùùùù

……等等

我将其转换为字节数组,然后尝试将其转换为BuffereImage,但始终出现空指针异常。我做了一些研究,发现原因是,我没有注册inputstreamreader,但我没有解决方案。到目前为止,我的代码如下所示:

public static BufferedImage decodeToImage(String imageString) {

    BufferedImage image = null;
    byte[] imageByte;
    try {
        BASE64Decoder decoder = new BASE64Decoder();
        imageByte = decoder.decodeBuffer(imageString);
        image = ImageIO.read(new ByteArrayInputStream(imageByte));

    } catch (Exception e) {
        e.printStackTrace();
    }
    return image;
}
如果有人能帮助我,我会非常高兴

编辑:


数据来自服务器。大学项目的数据是向服务器发送命令,这就是在inputstream上使用readline时服务器的答案。

您希望将其转换为什么图像类型?该字符串从何而来?基本上,二进制数据不是文本,这当然不是Base64。您应该ld要么实际对原始图像进行base64编码,要么根本避免使用字符串。至于NullPointerException-我怀疑这是因为您实际上忽略了正在执行的实际异常。停止这样做-如果解码失败,您真的要返回null吗?关于
imageByte=imageString.getBytes如何(StandardCharsets.ISO_8859_1)
?因此,您的服务器似乎正在向您发送图像本身,而不是字符串,一个字节流。不要使用
读取器来读取它。使用输入流直接将其读取到ImageIO中。当我仅使用
图像=ImageIO.read(socket.getInputStream())时,
图像始终为空