Reduce the size of a bitmap to a specified size in Android

前端 未结 2 1823
生来不讨喜
生来不讨喜 2020-12-08 19:58

I want to reduce the size of a bitmap to 200kb exactly. I get an image from the sdcard, compress it and save it to the sdcard again with a different name into a different di

2条回答
  •  独厮守ぢ
    2020-12-08 20:23

    I found an answer that works perfectly for me:

    /**
     * reduces the size of the image
     * @param image
     * @param maxSize
     * @return
     */
    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);
    }
    

    calling the method:

    Bitmap converetdImage = getResizedBitmap(photo, 500);
    

    Where photo is your bitmap

提交回复
热议问题