在我的项目中,我收到了一个灰度 8BPP 格式的 Base64 编码图像。我无法将其转换为 BufferedImage。当我从磁盘读取图像(f.ex png)时,我有一些代码可以工作,对它进行base64编码并反转过程。
无论如何,当我尝试转换收到的字符串时,一切似乎都正常,但返回了 null。调用的不是 catch,而是返回 null 的 ImageIO.read。
有什么建议么?我知道 base64 字符串是有效的,因为我尝试将其保存为原始文件并在编辑器中打开它,从而正确显示图像。
这是我的代码:
public static BufferedImage convertBase64StringToBufferedImage(String base64String){
byte[] pictureBytes = Base64Coder.decode(base64String);
InputStream is = new ByteArrayInputStream(pictureBytes);
BufferedImage image;
try {
image = ImageIO.read(new ByteArrayInputStream(pictureBytes));
} catch (IOException e) {
log.error(e.getMessage(), e);
return null;
}
return image;
}