Android 缩放Bitmap到指定比例大小
需求如下:
现Android
手机端通过拍照软件拍出一张照片,然后需要程序将这张照片的分辨率压缩至宽度为720的等比缩小版然后上传到服务器。
于是问题就来了:我要如何等比压缩这张图片?
我试过通过
inSampleSize
进行压缩,但是这个值只能是2的幂,因此设置之后它很有可能压缩的不是我指定的大小。通过
Matrix
进行缩放,但是种方法需要读取拍到的照片到内存中,不过摄像头拍出的照片挺大的,容易出现OOM
异常。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Bitmap bitmap = getCompressForQualitySize(os, (int) sampleSize);
ByteArrayOutputStream osSecond = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, options, osSecond);
用等比例缩放来做吧,先获取图片的宽高,然后按照比例缩小到 720就行了,但是可能会有些偏差
首先,Android上只能整数压缩,不能小数压缩,图片不可能刚好压缩至宽度为720
其次,一般是图片缩小至小于720的照片之后,再进行显示,不够720的地方可以空着,可以绘制默认底色,可以裁剪等等,视具体情况而定
你可以先用
inSampleSize
获得一张近似大小的图片,再用Matrix
进行缩放到指定大小嘛╮(╯_╰)╭