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!!!
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


0