reading read imagen imageio handling example java image

imagen - read image bufferedimage java



ImageIO.read devuelve NULL, sin errores (3)

El siguiente código parece no funcionar, a pesar de que el archivo parece encontrarse bien.

images = new BufferedImage[32]; FileInputStream fis = null; for (int i = 0; i < 32; i++) { File file = new File("tiles//"+i+".bmp"); if (!file.exists()){ System.out.println("File "+i+" failed"); } try { fis = new FileInputStream(file); } catch (FileNotFoundException e) { System.err.println(e + "" + i); } try { images[i] = ImageIO.read(fis); } catch (IOException e) { System.err.println(e + "" + i); } if (images[i] == null) { System.out.println("Image "+i+" failed"); } }

Gracias de antemano por cualquier ayuda.

Edición: el resultado es que intento Graphics.drawImage (images [0]) ;, y me da una excepción de puntero nulo. Este código aquí termina bien.

Editar: Cambiado movió el if (! File.exists ()) como se sugiere, y envolvió el archivo en una secuencia de entrada.


Intente envolver InputStream en BufferedInputStream:

fis = new FileInputStream (archivo); ==> nuevo BufferedInputStream (nuevo FileInputStream (archivo));


ImageIO.read(*...) solo cargará estos tipos de imagen GIF , PNG , JPEG , BMP y WBMP .

Cualquier otro tipo de imagen devolverá el null sin error.

referencia: http://docs.oracle.com/javase/tutorial/2d/images/loadimage.html

Me doy cuenta de que esto no es una solución al problema original específico, pero es una solución a la pregunta formulada.


ImageIO.read (archivo); devolverá nulo si no se encuentra un ImageReader registrado. Por favor verifica si has registrado algún ImageReader o no.

Creo que este fragmento de código podría ayudarte

File file = new File("bear.jpg"); // I have bear.jpg in my working directory FileInputStream fis = new FileInputStream(file); BufferedImage image = ImageIO.read(fis); //reading the image file

Solo necesita envolver el archivo en un FileInputStream y luego pasarlo a leer ()