Foros del Web » Programación para mayores de 30 ;) » Java »

Leer color de un píxel

Estas en el tema de Leer color de un píxel en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/07/2006, 04:50
 
Fecha de Ingreso: abril-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
Leer color de un píxel

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.
  #2 (permalink)  
Antiguo 11/07/2006, 12:02
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 18 años, 10 meses
Puntos: 2
que quieres decir con que no los lee bien? Te regresa una excepcion, o es que te regresa un valor que no esperabas?
  #3 (permalink)  
Antiguo 13/07/2006, 01:58
 
Fecha de Ingreso: abril-2006
Mensajes: 4
Antigüedad: 18 años
Puntos: 0
Me retorna un valor que no esperaba, siempre el -16777216, incluso si justo antes del bi.getRGB(0,0) hago un bi.setRGB(0,0,1234), en lugar de retornarme el 1234, me sigue retornando el -16777216
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:45.