Hola, intento cargar una imagen (un bmp) y leer el color de los píxeles con la función getRGB de BufferedImage, pero no lo consigo, parece como si no se inicializara bien el array donde se guarda la imagen. Pongo el código:
/*
* Main.java
*
* Created on 7 de julio de 2006, 10:36
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package cargarimagen;
import java.io.File;
import javax.imageio.stream.*;
import javax.imageio.ImageIO;
import java.util.*;
import javax.imageio.ImageReader;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Component;
/**
*
* @author Administrador
*/
public class Main {
/** Creates a new instance of Main */
public Main() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
// TODO code application logic here
File source = new File("c:/par.bmp");
ImageInputStream iis = ImageIO.createImageInputStream(source);
Iterator readers = ImageIO.getImageReadersByFormatName("bmp");
ImageReader reader = (ImageReader)readers.next();
reader.setInput(iis, true);
int anchura, altura;
BufferedImage bi;
try {
System.out.println("Anchura: " + reader.getWidth(0));
anchura = reader.getWidth(0);
System.out.println("Altura: " + reader.getHeight(0));
altura = reader.getHeight(0);
bi = reader.read(0);
try {
System.out.println("Color del píxel 0,0: " + bi.getRGB(0,0));
System.out.println("Modelo de color: " + bi.getColorModel());
System.out.println("Tipo: " + bi.getType());
}
catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
catch (IllegalStateException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Lo de ver la anchura y la altura de la imagen, lo hace bien, pero no consigo que me lea bien los píxeles.