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 ()