Re-size and Compress Image in Android Studio

Published August 19, 2020

In this post, we will learn how to resize and compress an image in Android. Resize image will give usefull in some time.

Bitmap b = BitmapFactory.decodeFile("Pass your file path");
// original measurements
int origWidth = b.getWidth();
int origHeight = b.getHeight();

final int destWidth = 500;//or the width you need

if(origWidth > destWidth){
         // picture is wider than we want it, we calculate its target height
          int destHeight = origHeight/( origWidth / destWidth ) ;
         // we create an scaled bitmap so it reduces the image, not just trim it
          Bitmap b2 = Bitmap.createScaledBitmap(b, destWidth, destHeight, false);
          ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            // compress to the format you want, JPEG, PNG... 
            // 70 is the 0-100 quality percentage
    b2.compress(Bitmap.CompressFormat.JPEG,70 , outStream);
            // we save the file, at least until we have made use of it
           File f = new File(Environment.getExternalStorageDirectory()
                    + File.separator + "test.jpg");
           f.createNewFile();
           //write the bytes in file
    FileOutputStream fo = new FileOutputStream(f);
    fo.write(outStream.toByteArray());
           // remember close de FileOutput
    fo.close();
}

 

With the above coe we can resize image from given file.

 

How to rotate Bitmap in Android?

We can rotate given bitmap by below functionality

Bitmap RotateBitmap(Bitmap source, float angle)
    {
        Matrix matrix = new Matrix();
        matrix.postRotate(angle);
        return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
    }

 

in the above method pass bitmap which we need to ratate and pass rotation angle

 

Generate Bitmap from drawable image

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
// Resize the bitmap to 150x100 (width x height)
Bitmap bMapScaled = Bitmap.createScaledBitmap(bMap, 150, 100, true);

 

 

References:

Article Contributed By :
https://www.rrtutors.com/site_assets/profile/assets/img/avataaars.svg

5753 Views