为什么我的BufferedImage从一个字节数组返回null?
问题描述:
基本上,我正在做的是将图像转换为字节数组,处理它,然后获得字节数组后,将其转换回图像。这里是我如何将字节数组转换为图像。为什么我的BufferedImage从一个字节数组返回null?
InputStream in = new ByteArrayInputStream(result); //result is the byte array
BufferedImage bImageFromConvert;
try {
bImageFromConvert = ImageIO.read(in);
ImageIO.write(
bImageFromConvert, watermark_ext, new File(extracted_name_path));
} catch (Exception e) {
return e.getMessage();
}
下面这段代码完全适用PNG或JPG图像,但是当我使用它的BMP图像,它返回说bImageFromConvert是空例外。任何人都可以请帮助我知道它为什么这样做?感谢大家。
答
答案是in the Javadoc:
返回一个BufferedImage作为解码所提供 的ImageInputStream与来自 目前登记的那些中自动选择一个ImageReader的结果。如果没有注册的ImageReader声称是 能够读取流,则返回null。
这个previous post on SO更详细。
非常感谢你,先生!以前的帖子非常丰富。尝试这些新信息后,我会再次发表评论。 – Lights 2013-03-07 19:38:04
对于这个问题的未来读者,我解决了这个问题。在恢复映像之前,我对字节数组进行了一些修改。为了恢复bmp图像,我没有做任何事情。这解决了它。谢谢奥宾。 – Lights 2013-03-11 17:41:38
@Lights介意分享您所做的修改,即使3年过去了。 – Segmentation 2016-09-21 23:02:10