Faible qualité d'image / image lors de la capture de la caméra

J'ai un problème. Lorsque j'essaie d'obtenir une image de la caméra, la qualité est très faible. Tout d'abord, capturez l'image à l'aide d'une caméra, enregistrez dans le répertoire et, en même temps, obtenez cette image et montrez dans mon application. L'image enregistrée à l'intérieur du répertoire est une qualité fine, mais lorsque je l'ai depuis le répertoire, la qualité est faible. Ci-dessous est mon exemple de code:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == CAMERA_PIC_REQUEST) { Bitmap thumbnail = (Bitmap) intent.getExtras().get("data"); if (g==1) { ImageView myImage = (ImageView) findViewById(R.id.img5); myImage.setImageBitmap(thumbnail); View a = findViewById(R.id.img5); a.setVisibility(View.VISIBLE); ByteArrayOutputStream stream = new ByteArrayOutputStream(); thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, stream); byteArray1 = stream.toByteArray(); } } 

Toute solution / suggestion? Merci 🙂

  • GreenDAO 40 secondes pour insérer 600 enregistrements
  • Custom Translucent Android ActionBar
  • Copier / coller le problème avec eclipse Juno
  • La meilleure façon de mettre en cache les données dans Android
  • Comparaison de deux emplacements en utilisant leur longitude et Latitude
  • Création de programmes RadioButtons par programme
  • Résolu

    Le problème résolu quand je suis le code donné par Antrromet ci-dessous

    2 Solutions collect form web for “Faible qualité d'image / image lors de la capture de la caméra”

    J'ai utilisé le code suivant et cela fonctionne parfaitement pour moi.

      values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, "New Picture"); values.put(MediaStore.Images.Media.DESCRIPTION, "From your Camera"); imageUri = getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, PICTURE_RESULT); 

    et aussi

     protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PICTURE_RESULT: if (requestCode == PICTURE_RESULT) if (resultCode == Activity.RESULT_OK) { try { thumbnail = MediaStore.Images.Media.getBitmap( getContentResolver(), imageUri); imgView.setImageBitmap(thumbnail); imageurl = getRealPathFromURI(imageUri); } catch (Exception e) { e.printStackTrace(); } } } } 

    et

     public String getRealPathFromURI(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } 

    Je vais vous donner quelque chose qui fonctionne pour moi. J'ai demandé la même chose!

    Solution pour sauvegarder une image dans un dossier spécifique sans perte de qualité

    J'ai trouvé la solution:

    // Créer un nouveau code de dossier:

      String path = String.valueOf(Environment.getExternalStorageDirectory()) + "/your_name_folder"; try { File ruta_sd = new File(path); File folder = new File(ruta_sd.getAbsolutePath(), nameFol); boolean success = true; if (!folder.exists()) { success = folder.mkdir(); } if (success) { Toast.makeText(MainActivity.this, "Carpeta Creada...", Toast.LENGTH_SHORT).show(); } } catch (Exception ex) { Log.e("Carpetas", "Error al crear Carpeta a tarjeta SD"); } Intent i = new Intent(MainActivity.this, MainActivity.class); startActivity(i); finish();//agregue este 

    // Méthode pour prendre une photo

     public void clickFoto(View view) { takePic(); } 

    // takePic ()

      private void takePic() { String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); *File file = new File(Environment.getExternalStorageDirectory(), "/your_name_folder/a" + "/photo_" + timeStamp + ".png");* imageUri = Uri.fromFile(file); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, PICTURE_RESULT); } 

    // onActivityResult

     public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PICTURE_RESULT: if (requestCode == PICTURE_RESULT) if (resultCode == Activity.RESULT_OK) { try { Bitmap thumbnail = MediaStore.Images.Media.getBitmap( getContentResolver(), imageUri); imgFoto.setImageBitmap(thumbnail); imageurl = getRealPathFromURI(imageUri); } catch (Exception e) { e.printStackTrace(); } } } } 

    // getRealPathFromUri

     public String getRealPathFromURI(Uri contentUri) { String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.