Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Bitmap getResizedBitmap(Bitmap image, int bitmapWidth, int bitmapHeight) {
- return Bitmap.createScaledBitmap(image, bitmapWidth, bitmapHeight, true);
- }
- public Bitmap getResizedBitmap(Bitmap image, int maxSize) {
- int width = image.getWidth();
- int height = image.getHeight();
- float bitmapRatio = (float) width / (float) height;
- if (bitmapRatio > 1) {
- width = maxSize;
- height = (int) (width / bitmapRatio);
- } else {
- height = maxSize;
- width = (int) (height * bitmapRatio);
- }
- return Bitmap.createScaledBitmap(image, width, height, true);
- }
- /** getResizedBitmap method is used to Resized the Image according to custom width and height
- * @param image
- * @param newHeight (new desired height)
- * @param newWidth (new desired Width)
- * @return image (new resized image)
- * */
- public static Bitmap getResizedBitmap(Bitmap image, int newHeight, int newWidth) {
- int width = image.getWidth();
- int height = image.getHeight();
- float scaleWidth = ((float) newWidth) / width;
- float scaleHeight = ((float) newHeight) / height;
- // create a matrix for the manipulation
- Matrix matrix = new Matrix();
- // resize the bit map
- matrix.postScale(scaleWidth, scaleHeight);
- // recreate the new Bitmap
- Bitmap resizedBitmap = Bitmap.createBitmap(image, 0, 0, width, height,
- matrix, false);
- return resizedBitmap;
- }
- Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter);
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.widget.ImageView;
- import android.widget.Toast;
- public class ImageProcessActivity extends AppCompatActivity {
- private static final String TAG = "ImageProcessActivity";
- private static final String IMAGE_PATH = "/sdcard/DCIM/my_image.jpg";
- public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
- final int height = options.outHeight;
- final int width = options.outWidth;
- int inSampleSize = 1;
- if (height > reqHeight || width > reqWidth) {
- final int halfHeight = height / 2;
- final int halfWidth = width / 2;
- // Calculate the largest inSampleSize value that is a power of 2 and keeps both
- // height and width larger than the requested height and width.
- while ((halfHeight / inSampleSize) >= reqHeight && (halfWidth / inSampleSize) >= reqWidth) {
- inSampleSize *= 2;
- }
- }
- return inSampleSize;
- }
- public static Bitmap decodeSampleDrawableFromFile(String file, int reqWidth, int reqHeight) {
- // First decode with inJustDecodeBounds=true to check dimensions
- final BitmapFactory.Options options = new BitmapFactory.Options();
- options.inJustDecodeBounds = true;
- BitmapFactory.decodeFile(file, options);
- // Calculate inSampleSize
- options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
- // Decode bitmap with inSampleSize set
- options.inJustDecodeBounds = false;
- return BitmapFactory.decodeFile(file, options);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_image_process);
- new AsyncTask<Object, Object, Bitmap>() {
- @Override
- protected Bitmap doInBackground(Object... objects) {
- try {
- return decodeSampleDrawableFromFile(IMAGE_PATH, 640, 640);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override
- protected void onPostExecute(Bitmap bitmap) {
- super.onPostExecute(bitmap);
- ((ImageView) findViewById(R.id.img)).setImageBitmap(bitmap);
- }
- }.execute();
- }
- }
Add Comment
Please, Sign In to add comment