In my application I do a snapshot in this way:
And server receives:Code:private void doSnapshot() { new Thread() { public void run() { try { byte [] snap = vidCtrl.getSnapshot("encoding=jpeg"); if (snap != null) { Image im = Image.createImage(snap, 0, snap.length); ImageItem imi = new ImageItem("", im, Item. PLAIN, ""); vidForm.append(imi); inviaimg(snap); System.out.println("La fotografia è stata inviata"); risposta_foto(); } } catch (MediaException me) { System.err.println(me); } } }.start(); }
Function leggi:Code:byte[] image=new byte[900000]; leggi(image,60,true);
When I try on emulator (Sun or Nokia) it run ok, but when I try on Nokia 5800 XE the server takes this error:Code:public int leggi(byte[] buffer, int time, boolean pulisci){ int num_bytes=0; try{ // Aspetta la read per time secondi client.setSoTimeout(time*1000); // Legge il messaggio come flusso di byte if(pulisci) read_from_client=new BufferedInputStream(client.getInputStream()); num_bytes=read_from_client.read(buffer,0,buffer.length); return num_bytes; }catch(SocketTimeoutException ex){ System.err.println("Tempo scaduto per l'operazione di lettura"); ex.printStackTrace(); try{ // Chiude la connessione System.out.println("CHIUSURA DEL THREAD DI SERVIZIO PER IL CLIENT "+client.getInetAddress()+":"+client.getPort()); read_from_client.close(); write_to_client.close(); client.close(); }catch(IOException dex){ dex.printStackTrace(); System.exit(0); } }catch(Exception ex){ ex.printStackTrace(); try{ // Chiude la connessione System.out.println("CHIUSURA DEL THREAD DI SERVIZIO PER IL CLIENT "+client.getInetAddress()+":"+client.getPort()); read_from_client.close(); write_to_client.close(); client.close(); }catch(IOException dex){ dex.printStackTrace(); System.exit(0); } } return 0; }
Can you help me?Code:sun.awt.image.ImageFormatException: Invalid JPEG file structure: missing SOS marker at sun.awt.image.JPEGImageDecoder.readImage(Native Method) at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119) at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246) at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172) at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)

Reply With Quote


