首页 > Android 缩放Bitmap到指定比例大小

Android 缩放Bitmap到指定比例大小

需求如下:
Android手机端通过拍照软件拍出一张照片,然后需要程序将这张照片的分辨率压缩至宽度为720的等比缩小版然后上传到服务器。
于是问题就来了:我要如何等比压缩这张图片?

  1. 我试过通过inSampleSize进行压缩,但是这个值只能是2的幂,因此设置之后它很有可能压缩的不是我指定的大小。

  2. 通过Matrix进行缩放,但是种方法需要读取拍到的照片到内存中,不过摄像头拍出的照片挺大的,容易出现OOM异常。


首先,Android上只能整数压缩,不能小数压缩,图片不可能刚好压缩至宽度为720
其次,一般是图片缩小至小于720的照片之后,再进行显示,不够720的地方可以空着,可以绘制默认底色,可以裁剪等等,视具体情况而定


你可以先用inSampleSize获得一张近似大小的图片,再用Matrix进行缩放到指定大小嘛╮(╯_╰)╭


Bitmap bitmap = getCompressForQualitySize(os, (int) sampleSize);
ByteArrayOutputStream osSecond = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, options, osSecond);
用等比例缩放来做吧,先获取图片的宽高,然后按照比例缩小到 720就行了,但是可能会有些偏差

【热门文章】
【热门文章】