Convertir y mostrar la imagen de la matriz de bytes

Estoy creando un programa que obtiene datos sobre una imagen en una matriz de bytes desde un servidor. Estoy convirtiendo estos datos en formato BMP de 24 bits (ya sea en formato jpeg, png, bmp o 8-24-32bpp). Primero, lo estoy guardando en mi HD, y luego lo estoy cargando en el Icono de JLabel. Funciona perfectamente, aunque hay algunos casos en los que obtengo la siguiente excepción:

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)

Para esta línea (la segunda)

File imgFile = new File("d:/image.bmp");
BufferedImage image = ImageIO.read(imgFile);

En estos casos:

La imagen no se carga en la JLabel, pero se puede encontrar en mi HDLa conversión no es correcta, porque algo "resbala".La imagen es como cuando se usa cursiva en un documento de Word.

Primero, pensé que tal vez el problema sea el bpp, luego pensé que tal vez las imágenes son demasiado grandes, pero tengo casos que funcionan y casos que no lo hacen para ambas sugerencias. Estoy un poco atascado aquí, y me alegraría tener ideas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta