Bitmap bitmapOrg = BitmapFactory.decodeFile(Location_Image.filename); int width = bitmapOrg.getWidth(); int height = bitmapOrg.getHeight(); int newWidth = 200; int newHeight = 200;
// calculate the scale - in this case = 0.4f float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // createa matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(scaleWidth, scaleHeight); // rotate the Bitmap matrix.postRotate(90); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true); resizedBitmap.compress(CompressFormat.JPEG, 50, new FileOutputStream( Location_Image.filename2 )); On Feb 12, 7:18 pm, Vaibhav Goel <vaibhavgoe...@gmail.com> wrote: > I need to crop an image whose Uri is known. > > In 1.6 I used the below code. > > Intent i = new Intent("com.android.camera.action.CROP"); > i.setClassName("com.android.camera", "com.android.camera.CropImage"); > i.setData(imageUri); // imageUri = > content://media/external/images/media/40 > i.putExtra("noFaceDetection", false); > i.putExtra("outputX", 75); > i.putExtra("outputY", 75); > i.putExtra("aspectX", 1); > i.putExtra("aspectY", 1); > i.putExtra("scale", true); > > ContentValues values = new ContentValues(); > values.put(Media.TITLE, "User_t" + "_Image"); > values.put(Media.BUCKET_ID, "User-T"); > values.put(Media.BUCKET_DISPLAY_NAME, "image_t"); > values.put(Media.IS_PRIVATE, 1); > userThumbnailUri = getContentResolver().insert( > Media.EXTERNAL_CONTENT_URI, values); > i.putExtra(MediaStore.EXTRA_OUTPUT, userThumbnailUri); > startActivityForResult(i, CROP_IMAGE); > > It worked fine on 1.6 but when i tested it on 2.1 it give error as > shown below. > > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): > java.lang.RuntimeException: Failure delivering result > ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content:// > media/external/images/media/40 }} to activity {net.urbansignals/ > net.urbansignals.activity.user.SignUpActivity}: > java.lang.SecurityException: Permission Denial: starting Intent > { act=com.android.camera.action.CROP dat=content://media/external/ > images/media/40 cmp=com.android.camera/.CropImage (has extras) } from > ProcessRecord{44ae1ac8 851:net.urbansignals/10045} (pid=851, > uid=10045) requires null > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityThread.deliverResults(ActivityThread.java:3329) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityThread.handleSendResult(ActivityThread.java:3371) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityThread.access$2700(ActivityThread.java:119) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.os.Handler.dispatchMessage(Handler.java:99) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.os.Looper.loop(Looper.java:123) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityThread.main(ActivityThread.java:4363) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > java.lang.reflect.Method.invokeNative(Native Method) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > java.lang.reflect.Method.invoke(Method.java:521) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > com.android.internal.os.ZygoteInit > $MethodAndArgsCaller.run(ZygoteInit.java:860) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > dalvik.system.NativeStart.main(Native Method) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): Caused by: > java.lang.SecurityException: Permission Denial: starting Intent > { act=com.android.camera.action.CROP dat=content://media/external/ > images/media/40 cmp=com.android.camera/.CropImage (has extras) } from > ProcessRecord{44ae1ac8 851:net.urbansignals/10045} (pid=851, > uid=10045) requires null > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.os.Parcel.readException(Parcel.java:1218) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.os.Parcel.readException(Parcel.java:1206) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java: > 1214) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.Instrumentation.execStartActivity(Instrumentation.java: > 1373) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.Activity.startActivityForResult(Activity.java:2749) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > net.urbansignals.activity.user.SignUpActivity.onActivityResult(SignUpActivity.java: > 326) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.Activity.dispatchActivityResult(Activity.java:3828) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): at > android.app.ActivityThread.deliverResults(ActivityThread.java:3325) > 02-12 19:09:43.504: ERROR/AndroidRuntime(851): ... 11 more > > Can any body suggest the proper way do crop an image in 2.x ? > > Thanks for your suggestions. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en