我正在制作一个程序,它从服务器获取有关字节数组中图像的数据。我正在将此数据转换为 24 位 BMP 格式(无论是 jpeg、png、bmp 还是 8-24-32bpp)。首先,我将其保存到我的 HD 中,然后将其加载到 JLabel 的图标中。完美运行,尽管在某些情况下我会遇到以下异常:
java.io.EOFException at
javax.imageio.stream.ImageInputStreamImpl.readFully(ImageInputStreamImpl.java:353) at
com.sun.imageio.plugins.bmp.BMPImageReader.read24Bit(BMPImageReader.java:1188) at
com.sun.imageio.plugins.bmp.BMPImageReader.read(BMPImageReader.java:843) at
javax.imageio.ImageIO.read(ImageIO.java:1448) at
javax.imageio.ImageIO.read(ImageIO.java:1308)
对于这条线(第二条)
File imgFile = new File("d:/image.bmp");
BufferedImage image = ImageIO.read(imgFile);
在这些情况下:
- 图像不会加载到 JLabel 中,但可以在我的 HD 上找到
- 转换不正确,因为有些东西“滑倒”
- 图片就像在 Word 文档中使用斜体
首先,我认为可能是 bpp 问题,然后我认为图片可能太大了,但我有一些案例它可以工作,而案例对于这两种建议都不起作用。我有点卡在这里,很高兴有想法。