为什么即使有数据,bImageFromConvert也会变为空?
BufferedImage img = null;
byte[] s;
ArrayList<Byte> f;
InputStream in;
BufferedImage bImageFromConvert;
public void print(ArrayList<Byte> lst) throws IOException {
byte[] o = new byte[lst.size()];
for (int i = 0; i < lst.size(); i++) {
o[i] = lst.get(i);
}
in = new ByteArrayInputStream(o);
bImageFromConvert = ImageIO.read(in);
答案 0 :(得分:3)
好的,基于评论中的讨论:
您有一个字节流,表示每像素RGB。
ImageIO.read()
根据其Javadoc的说法,“返回一个BufferedImage作为解码提供的InputStream的结果,其中ImageReader是从当前注册的那些中自动选择的。”因此,ImageIO.read()
通常不期望RGB像素字节,而是编码为JPG或PNG。由于它无法将字节流识别为有效的图像编码,因此返回null。
然后在SO上给出关于如何从RGB像素字节获取图像的可能解决方案:How to convert array of bytes into Image in Java SE