Autore Topic: Acquisizione immagine  (Letto 835 volte)

Offline patomania

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
Acquisizione immagine
« il: 09 Dicembre 2011, 12:06:58 CET »
0
Salve ragazzi,

l'applicazione che sto cercando di realizzare dovrebbe inizialmente scattare una foto e poi fare dell'elaborazioni su di essa.
Dato che sono un'utente alle primissime armi, per catturare un'immagine ho utilizzato l'app di default installata sul dispositivo,

Codice (Java): [Seleziona]
Intent i = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
               startActivityForResult(cameraIntent, PICK_PHOTO_REQUEST_ID);

Codice (Java): [Seleziona]
// invocato da startActivityForResult()
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==PICK_PHOTO_REQUEST_ID){
                switch (resultCode) {
                        case RESULT_OK:
                               
                                // In questo caso l'immagine e' contenuta nell'Intent di ritorno
                                // come Extra di tipo Bitmap associata al nome data
                                Bitmap picture = (Bitmap)data.getExtras().get(DATA_EXTRAS);
                                // La visualizziamo sulla ImageView
                                ImageView resultView = (ImageView)findViewById(R.id.result_image);
                                resultView.setImageBitmap(picture);
                                break;
                       case RESULT_CANCELED:
                                // NOn facciamo nulla se non visualizzare un Toast con un messaggio
                                Toast toast = Toast.makeText(this, getString(R.string.op_cancelled_label), Toast.LENGTH_SHORT);
                                toast.show();
                                break;                         
                        default:
                                throw new IllegalArgumentException("ResultCode not valid");
                        }
        }
    }


solo che mi restituisce un'immagine di dimensioni piccole per poterla elaborare.

qualcuno sa come posso ottenere un'immagine più grande?

ho provato a fare questo:
Codice (Java): [Seleziona]
public void pickPhoto(View view){
        // Creazione dell'intent
        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        // Lanciamo l'Intent
        File root=Environment.getExternalStorageDirectory();
        String nameFile = "immagine_catturara.jpg";
        File dir=new File(root,nameFile);
     
        fileUri = Uri.fromFile(dir);// create a file to save the image
        Log.i("CATTURA","uri: "+fileUri) ;
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
        startActivityForResult(cameraIntent, PICK_PHOTO_REQUEST_ID);
    }  

// invocato da startActivityForResult()
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==PICK_PHOTO_REQUEST_ID){
                switch (resultCode) {
                        case RESULT_OK:
                                // In questo caso l'immagine e' contenuta nell'Intent di ritorno
                                // come Extra di tipo Bitmap associata al nome data
                                /*Bitmap picture = (Bitmap)data.getExtras().get(DATA_EXTRAS);
                                // La visualizziamo sulla ImageView
                                ImageView resultView = (ImageView)findViewById(R.id.result_image);
                                TextView tv= (TextView)findViewById(R.id.testo);
                                tv.setText("Altezza: "+picture.getHeight() +"Larghezza: "+picture.getWidth());
                                resultView.setImageBitmap(picture);*/

                                if(data!=null)
                                   Toast.makeText(this, "Image saved to:\n" + data.getData(), Toast.LENGTH_LONG).show();
                                Toast.makeText(this, "Errore", Toast.LENGTH_LONG).show();
                                break;
                        case RESULT_CANCELED:
                                // NOn facciamo nulla se non visualizzare un Toast con un messaggio
                                Toast toast = Toast.makeText(this, getString(R.string.op_cancelled_label), Toast.LENGTH_SHORT);
                                toast.show();
                                break;                         
                        default:
                                throw new IllegalArgumentException("ResultCode not valid");
                        }
        }
    }
}

l'intent di ritorno data  risulta null. però nell sd-card ho l'immagine. qualcuno mi sa dare un'aiuto?  :D
« Ultima modifica: 09 Dicembre 2011, 17:34:29 CET da patomania »