How to crop camera images

How to crop camera images. Now it displays the image for cropping and after selecting the cropping section when you click the " Save " button. Its display is " save image ". After that, nothing happens. Here is my code.

Button:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString()); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 0); intent.putExtra("aspectY", 0); intent.putExtra("outputX", 200); intent.putExtra("outputY", 150); intent.putExtra("return-data", true); startActivityForResult(intent, CAMERA_PIC_REQUEST); 

onActivityResult:

 Bundle extras = data.getExtras(); Bitmap bitmap = (Bitmap) extras.get("data"); if (bitmap != null) { Img_View.setImageBitmap(bitmap); } 
+7
android image android-camera crop
source share
2 answers

You can use this code to perform cropping:

 ..... final int CAMERA_CAPTURE = 1; final int CROP_PIC = 2; private Uri picUri; .... @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button captureBtn = (Button) findViewById(R.id.capture_btn); captureBtn.setOnClickListener(this); } public void onClick(View v) { if (v.getId() == R.id.capture_btn) { try { // use standard intent to capture an image Intent captureIntent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE); // we will handle the returned data in onActivityResult startActivityForResult(captureIntent, CAMERA_CAPTURE); } catch (ActivityNotFoundException anfe) { Toast toast = Toast.makeText(this, "This device doesn't support the crop action!", Toast.LENGTH_SHORT); toast.show(); } } } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == CAMERA_CAPTURE) { // get the Uri for the captured image picUri = data.getData(); performCrop(); } // user is returning from cropping the image else if (requestCode == CROP_PIC) { // get the returned data Bundle extras = data.getExtras(); // get the cropped bitmap Bitmap thePic = extras.getParcelable("data"); ImageView picView = (ImageView) findViewById(R.id.picture); picView.setImageBitmap(thePic); } } } /** * this function does the crop operation. */ private void performCrop() { // take care of exceptions try { // call the standard crop action intent (the user device may not // support it) Intent cropIntent = new Intent("com.android.camera.action.CROP"); // indicate image type and Uri cropIntent.setDataAndType(picUri, "image/*"); // set crop properties cropIntent.putExtra("crop", "true"); // indicate aspect of desired crop cropIntent.putExtra("aspectX", 2); cropIntent.putExtra("aspectY", 1); // indicate output X and Y cropIntent.putExtra("outputX", 256); cropIntent.putExtra("outputY", 256); // retrieve data on return cropIntent.putExtra("return-data", true); // start the activity - we handle returning in onActivityResult startActivityForResult(cropIntent, CROP_PIC); } // respond to users whose devices do not support the crop action catch (ActivityNotFoundException anfe) { Toast toast = Toast .makeText(this, "This device doesn't support the crop action!", Toast.LENGTH_SHORT); toast.show(); } } 

You can use the following simple tutorial to perform cropping:

+21
source share

try it

  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); mImageCaptureUri = Uri.fromFile(new File(Environment .getExternalStorageDirectory(), "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg")); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); intent.setData(mImageCaptureUri); intent.putExtra("outputX", 200); intent.putExtra("outputY", 200); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("scale", true); intent.putExtra("return-data", true); 
0
source share

All Articles