将字节数组转换为Java中的图像 - 不知道类型

PHe*_*ath 13 java javax.imageio

听起来很简单吧?使用

ImageIO.read(new ByteArrayInputStream(bytes));
Run Code Online (Sandbox Code Playgroud)

这是皱纹.由于某种原因,它将jpeg检测为bmp,这是我调用时返回的第一个ImageReader

ImageInputStream iis = ImageIO.createImageInputStream(new ByteArrayInputStream(bytes));
Iterator<ImageReader> readers=ImageIO.getImageReaders(iis);
Run Code Online (Sandbox Code Playgroud)

这会导致图像损坏.有没有办法告诉java没有直接查看标头的字节,并且没有任何人知道不同图像的字节标头的良好参考?

只是让你们知道我还在努力.如果/我有答案,我会通知你.到目前为止,我感谢你们所有人的回复.

jed*_*ikb 3

有一段时间没有玩过 ImageIO,也没有测试过这个,但我似乎记得这样的工作。(既然你说你知道你的文件是 jpg 而不是位图,我正在使用该信息来帮助找到正确的加载器)。

String inFormat = "jpg";

Iterator inReaders = ImageIO.getImageReadersByFormatName(inFormat);

...

nextInReader.setInput( iis );
Run Code Online (Sandbox Code Playgroud)