Autore Topic: Salvataggio immagine  (Letto 537 volte)

Offline museitalyfan1

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Sistema operativo:
    Mac OS X 10.7.5
Salvataggio immagine
« il: 02 Luglio 2013, 18:37:08 CEST »
0
Ciao a tutti, sto creando un applicazione che permetta all'utente di caricare un'immagine, disegnarci sopra e salvarla.
Sto riscontrando dei problemi nel salvataggio dell'immagine, il problema e' che mi viene salvata solo l'immagine caricata e non l'immagine con le modifiche apportate.
Il codice e' il seguente:
btnsave.setOnClickListener(new View.OnClickListener() {
           
         @Override
         public void onClick(View v) {
 
                 ivdisplayphoto.setDrawingCacheEnabled(true);
                   Bitmap bitmap = ivdisplayphoto.getDrawingCache();
 
                   String root = Environment.getExternalStorageDirectory().toString();
                   File newDir = new File(root + "/saved_images");
                   newDir.mkdirs();
                   Random gen = new Random();
                   int n = 10000;
                   n = gen.nextInt(n);
                   String fotoname = "photo-"+ n +".jpg";
                   File file = new File (newDir, fotoname);
                   if (file.exists ()) file.delete ();
                      try {
                          FileOutputStream out = new FileOutputStream(file);
                          bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
                          out.flush();
                          out.close();
                          Toast.makeText(getApplicationContext(), "salvato nella tua cartella", Toast.LENGTH_SHORT ).show();
 
                      } catch (Exception e) {
 
                      }
 
                }
      });
Potreste darmi una mano a capire qual'e' l'errore? ho notato inoltre che, quando premo il pulsante per il salvataggio, l'applicazione non sempre salva le immagini. Grazie mille!

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Salvataggio immagine
« Risposta #1 il: 02 Luglio 2013, 19:11:30 CEST »
0
uhm non condivido molto il metodo per generare il nome dell'immagine.. e sopratutto il " if (file.exists ()) file.delete (); "
così può capitare che se generi un capolavoro, lui te lo sovrascrive... io inserirei la data corrente dopo il nome del file, o metto che
Codice (Java): [Seleziona]
while(file.exists ()) {
 n++;
 String fotoname = "photo-"+ n +".jpg";  File file = new File (newDir, fotoname);
}

in questo modo se il nome esiste, aggiunge 1 alla n, e così via, fin quando non trova  un indice vuoto

per poter capire il tuo errore, abbiamo bisogno del logcat, che naturalmente non ti stampa nulla, perchè il catch è vuoto
inserisci dentro
Log("errore",""+e);
e poi stampaci l'output

p.s. inserisci il tuo codice fra  tag per il java, così è più ordinato

Offline museitalyfan1

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Sistema operativo:
    Mac OS X 10.7.5
Re:Salvataggio immagine
« Risposta #2 il: 02 Luglio 2013, 21:09:52 CEST »
0
Grazie per i suggerimenti, essendo alle prime armi non so ancora molte cose.
Ho provato ad inserire Log("errore",""+e); ma mi segnala un errore, mi dice "The method Log(String,String) is undefined for the type new View.onClickListener () {}".
Se vuoi posso caricare tutto il codice perche', probabilmente, ho fatto errori banali.
Grazie mille!

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Salvataggio immagine
« Risposta #3 il: 02 Luglio 2013, 22:34:08 CEST »
0
Scusami, errore mio
devi scrivere
Codice (Java): [Seleziona]
 Log.e("errore",""+e);

La classe log serve proprio a stampare il log, e il log cat te li colora, tipo Log.e è rosso (per gli errori) Log.i è per le info e così via
Naturalmente ti dirà che Log non esiste, fermati con il mouse sopra e fai import log etc etc
se proprio non funziona al posto di log metti una printf
Codice (Java): [Seleziona]
System.out.println(""+e);

Offline museitalyfan1

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Sistema operativo:
    Mac OS X 10.7.5
Re:Salvataggio immagine
« Risposta #4 il: 04 Luglio 2013, 15:58:08 CEST »
0
Sono riuscito a risolvere, grazie mille  :-)

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Salvataggio immagine
« Risposta #5 il: 04 Luglio 2013, 16:00:03 CEST »
0
se ti sono stato utile, puoi premere il tasto thanks in alto vicino il mio nome.
Direi che si può chiudere questa discussione

Offline museitalyfan1

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Sistema operativo:
    Mac OS X 10.7.5
Re:Salvataggio immagine
« Risposta #6 il: 04 Luglio 2013, 16:49:07 CEST »
0
Certamente, solo che non trovo il pulsante da nessuna parte, dove si trova?

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Salvataggio immagine
« Risposta #7 il: 04 Luglio 2013, 16:51:27 CEST »
0
anche se siamo in offtopic, forse devi avere almeno 10 post per poter inserire thanks.
Per la cronaca si trova in alto a destra, accanto al pulsante "citazione"
Comunque fa nulla, l'importante è che sei riuscito a risolvere