¿Alguien puede explicar cómo obtener una matriz de valor rgb de una imagen almacenada?Obtener RGB de una imagen almacenada
Tengo una imagen de escala de grises en una Imagen Buffered y necesito extraer una matriz de 0 a 255 valores que describen la imagen.
Sé que la Imagen Buffered es correcta porque puedo guardarla en PNG. Sin embargo, si uso int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();
obtengo un montón de números negativos.
He buscado por un tiempo y he visto algunas referencias al cambio de algunos valores (post) pero realmente no entiendo lo que dicen.
Básicamente quiero pasar de una Imagen Buffered a una matriz de 0 a 255 valores RBG.
No estoy seguro de haberme explicado correctamente, plaese preguntar si se necesitan más detalles.
Edit:
@Garbage Gracias por la propina. Intenté int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Pero consigue el mismo resultado.
@ Greg Kopff El resultado es 2 y se establece en TYPE_INT_ARGB
¿Cuál es el resultado de BufferedImage.getType()? –
Probaste http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html#getRGB%28int,%20int,%20int,%20int,%20int [], % 20int,% 20int% 29 – Garbage
@Garbage Gracias por la sugerencia. Intenté int [] dataBuffInt = heightMap.getRGB (0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Pero consigue el mismo resultado. – kotoko