Java - ByteArrayOutputStream!!!?...

 
Vista:

ByteArrayOutputStream!!!?...

Publicado por lilu (112 intervenciones) el 10/01/2007 23:46:47
Ok …. Eso es lo que hago para obtener los valores RGB de una imagen y guardarlo en un ByteArray:

try{
ByteArrayOutputStream bytes = new ByteArrayOutputStream();

int taman = bytes.toByteArray().length;
losBytes = new byte[taman];


color = bfi.getColorModel();
for(x=0; x<ancho; x++)
{
for(y=0; y<alto; y++){
r = color.getRed(bfi.getRGB(x,y));
g = color.getGreen(bfi.getRGB(x,y));
b = color.getBlue(bfi.getRGB(x,y));
bytes.write(r);
bytes.write(g);
bytes.write(b);
}
}
System.out.println (bytes.toByteArray().length);
losBytes = bytes.toByteArray();

System.out.println ("Los Bytes:" + losBytes[5]);

} catch (Exception e){e.printStackTrace();}

Fíjense que antes de cerrar el catch verifico con bytes.toByteArray().length el tamaño del arreglo y todo bien!!!..... pero fíjense también que mando a imprimir el valor que esta en la posición 5 del arreglo losBytes y lo que me imprime es “-18”!!!....

PORQUE?...... aunque creo que es porque lo que viene de la imagen es entero “int”, es decir, los RGB que se obtienen de la imagen son enteros…. Imagino que es por eso!!... no se!

POR FAVOR Y GRACIAS!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ByteArrayOutputStream!!!?...

Publicado por Tom (1831 intervenciones) el 11/01/2007 11:58:59
Pues lo pone bastante claro en el api.

int getRed()

O sea, dos bytes cada componente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ByteArrayOutputStream!!!?...

Publicado por lilu (112 intervenciones) el 11/01/2007 15:01:11
Perdon!!!..... oye disculpa, pero no te entiendo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ByteArrayOutputStream!!!?...

Publicado por Tom (1831 intervenciones) el 12/01/2007 10:18:10
Pues que sí, que son enteros. Cada entero ocupa 2 bytes (creo recordar), o sea, 2 posiciones en un array de bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ByteArrayOutputStream!!!?...

Publicado por Tom (1831 intervenciones) el 12/01/2007 10:21:13
Perdón, estaba pensando en otra cosa ... son 4 bytes.

Supongo que sabes lo que es un byte, un int y un array ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar