Here i am not writing any program to crop, scale and rotate image , im just writing the basic process with some code to show it...
Get the bitmap image -
if its in resources
Bitmap origBitmap=BitmapFactory.decodeResource(getResource(),R.drawable.bitmapImage);
now u have got the Bitmap image from the drawable resource, my drawable resource name is bitmapImage.png , u can choose your own and correct accordingly.
Co-ordinates start from the top left corner of the Image as in Java.
So if u want to crop from (0,0) having width 50 and height 50 of an image having width and height of 400*400.
u jsut have to create a new Bitmap by giving appropriate coordinates,,
Bitmap croppedBitmap=Bitamp.create(origBitmap,0,0,50,50);
here u have to consider the width and height of the cropped bitmap that it should not exceed the original height and width of the image.
now Your Cropped Bitmap Image is ready , you can use it in imageView
as
imageView.setBitmap(croppedBitmap);
Generally cropping is not sufficient to covert a large image to small image, it should be scaled.
Scaling of image
Here i m using cropped image for scaling , u can use any image.
Android has provided a method to scale bitmap into a new bitmap
just use
Bitmap
scaledBitmap=Bitmap.createScaledBitmap(croppedBitmap,targetWidth,targetHeight,true);
Rotating Bitamps
to rotate a bitmap u also have to create a new Bitmap , but u need an extra param matrix
create a new matrix
Matrix matrix = new Matix();
matrix.postRotate(90);
here i have used 90 degrees rotation , you can use your own,
now just create new Bitmap by using this matrix,
Bitmap rotatedBitmap=Bitmap.createBitmap(scaledBitmap,0,0,scaledBitmap.getWidth(),scaledBitmap.getHeight(),true);
Thus it creates a rotated bitmap of our scaled Bitmap .. ,, now u can use any operation of your choice.
Nice code Atul,i have a similar issue. I want to crop a bitmap by a freehand area drawn by dragging fingers over screen. can you help me, any help would be appreciated
ReplyDelete