Last active
November 30, 2020 19:34
-
-
Save mikedg1/1178234 to your computer and use it in GitHub Desktop.
Low Memory Resizing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static Bitmap resize(Context context, Uri uri) { | |
| // decodes image and scales it to reduce memory consumption | |
| try { | |
| // Decode image size | |
| BitmapFactory.Options o = new BitmapFactory.Options(); | |
| o.inJustDecodeBounds = true; | |
| BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri), null, o); | |
| // The new size we want to scale to | |
| final int REQUIRED_SIZE = 70; | |
| // Find the correct scale value. It should be the power of 2. | |
| int width_tmp = o.outWidth, height_tmp = o.outHeight; | |
| int scale = 1; | |
| while (true) { | |
| if (width_tmp / 2 < REQUIRED_SIZE | |
| || height_tmp / 2 < REQUIRED_SIZE) | |
| break; | |
| width_tmp /= 2; | |
| height_tmp /= 2; | |
| scale *= 2; | |
| } | |
| // Decode with inSampleSize | |
| BitmapFactory.Options o2 = new BitmapFactory.Options(); | |
| o2.inSampleSize = scale; | |
| return BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri), null, o2); | |
| } catch (FileNotFoundException e) { | |
| } | |
| return null; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment