Android 缩放Bitmap到指定比例大小

发布于 2022-09-02 13:56:22 字数 316 浏览 4 评论 0

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暗喜 2022-09-09 13:56:23

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

你穿错了嫁妆 2022-09-09 13:56:23

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

许久 2022-09-09 13:56:22

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文