2017-08-01 1 views
0

Salut, fondamentalement, je suis en sélectionnant galerie de forme d'image ou de la capture de la caméra et le recadrage. Si je recadre l'image qui est sélectionnée dans la galerie, il n'y a pas de flou, mais si je recadre des images capturées, cela devient flou.Recadrage de l'image capturée est flou en android

Pour démarrer l'appareil photo, je l'ai utilisé

private void cameraIntent() 
    { 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(intent, REQUEST_CAMERA); 

    } 

et à huis clos onActivityResult

private void onCaptureImageResult(Intent data) { 
     Bitmap bm = (Bitmap) data.getExtras().get("data"); 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     bm.compress(Bitmap.CompressFormat.JPEG, 90, bytes); 
     crop(getImageUri(csActivity,bm)); 

    } 

Ceci est pour rogner l'image

private void crop(Uri uri) 
    { 
     final Intent intent = new Intent("com.android.camera.action.CROP"); 
     intent.setData(uri); 
     intent.putExtra("crop", "true"); 
     intent.putExtra("aspectX", 1); 
     intent.putExtra("aspectY", 1); 
     intent.putExtra("outputX", 96); 
     intent.putExtra("outputY", 96); 
     intent.putExtra("noFaceDetection", true); 
     intent.putExtra("return-data", true); 
     startActivityForResult(intent, REQUEST_CROP); 
    } 

et dans le résultat de la culture que je l'ai utilisé

private void onCropImg(Intent data) 
    { 
     Bitmap bm = (Bitmap) data.getExtras().get("data"); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bm.compress(Bitmap.CompressFormat.JPEG, 75, stream); 

     Uri tempUri = getImageUri(csActivity,bm); 

      // CALL THIS METHOD TO GET THE ACTUAL PATH 
     File destination = new File(getRealPathFromURI(tempUri)); 

     csProfileImg.setImageBitmap(bm); 

     uploadProfileImg(destination); 
     } 

et getImageUri

public Uri getImageUri(Context inContext, Bitmap inImage) { 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
     String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); 
     return Uri.parse(path); 
    } 

S'il vous plaît aider moi

Répondre

0

Vous pouvez utiliser une bibliothèque à l'image de la culture, qui donne des résultats appropriés ainsi que la qualité d'image. utiliser: compile 'com.theartofdev.edmodo:android-image-cropper:2.3.+'

Et pour plus, vous pouvez visiter cette page: check my answer