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

j2me

Estas en el tema de j2me en el foro de Programación General en Foros del Web. Hola a todos/as!! estoy realizando una aplicacion en la que desde el telefono del movil accedo al pc y descargo fotografias, el caso es que ...
  #1 (permalink)  
Antiguo 04/03/2009, 01:36
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 9 meses
Puntos: 0
j2me

Hola a todos/as!!

estoy realizando una aplicacion en la que desde el telefono del movil accedo al pc y descargo fotografias, el caso es que cuando la imagen descargada se muestra en pantalla le puesto la opcion de guardarla para poder guardarla en la tarjeta de memoria dl movil. El caso es que paso la imagen a un array de bytes, creo un fichero en la tarjeta de memoria y escribo ahi el array de bytes. Cuando salgo de la aplicacion y voy a la tarjeta de memoria el archivo esta ahi pero no me deja ver la foto. Este es el codigo que he hecho para el proceso de guardar:

private void saveThumbImageToMobile() {
Thread thread = new Thread(){
public void run() {
try {

imagenNueva = getImagen();
raw = getByteArray(imagenNueva);
} catch (Exception e) {
e.printStackTrace();
}



try {
FileConnection fc = (FileConnection) Connector.open("file:///SDCard/a.jpg");
if (!fc.exists()) {
fc.create();
OutputStream out;
out = fc.openOutputStream();
out.write(raw);
out.flush();
out.close();
fc.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
thread.start();
}









public static byte[] getByteArray(Image image) {
int raw[] = new int[image.getWidth() * image.getHeight()];
image.getRGB(raw, 0, image.getWidth(), 0, 0, image.getWidth(), image.getHeight());
byte rawByte[] = new byte[image.getWidth() * image.getHeight() * 4];
int n = 0;
for (int i = 0; i < raw.length; i++) {
int ARGB = raw[i];
int a = (ARGB & 0xff000000) >> 24;
int r = (ARGB & 0xff0000) >> 16;
int g = (ARGB & 0xff00) >> 8;
int b = ARGB & 0xff;
rawByte[n] = (byte) b;
rawByte[n + 1] = (byte) g;
rawByte[n + 2] = (byte) r;
rawByte[n + 3] = (byte) a;
n += 4;
}

raw = null;
return rawByte;
}


Si alguien me puede ayudar por favor, es muy urgente.
Gracias a todos/as;)
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




La zona horaria es GMT -6. Ahora son las 14:33.