"Android中图片质量压缩方案详解,实现图片压缩不降低像素"。
46 浏览量
更新于2024-01-31
收藏 72KB DOC 举报
Android中有多种图片压缩方案可以用来处理图片,其中一种是质量压缩法。这种方式的实现是通过设置bitmap options属性来降低图片的质量,而不会减少像素。首先传入需要压缩的bitmap图片对象和压缩后图片保存的位置,然后设置options属性为0-100来实现压缩。
一个典型的质量压缩方法的实现如下:
```
private Bitmap compressImage(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
int options = 100;
while (baos.toByteArray().length / 1024 > 100) {
baos.reset();
image.compress(Bitmap.CompressFormat.JPEG, options, baos);
options -= 10;
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);
return bitmap;
}
```
这段代码中,首先将原始图片对象压缩到baos中,然后通过循环判断压缩后的图片大小是否大于100kb,如果大于则继续压缩。在循环中每次压缩时,都会重置baos,重新将压缩后的图片数据存入其中,然后降低压缩质量参数options。最终将baos中的数据转换为Bitmap对象返回。
需要注意的是,质量压缩法虽然可以减小图片文件的大小,但并不会减少图片的像素。因此,如果需要显示的是高清图片,质量压缩法可能会导致图片模糊,不适合需要保持高清的场景。另外,由于图片的像素并未减少,因此即使通过质量压缩法减小了文件大小,图片的占用内存依然较大。
总的来说,质量压缩法是一种简单实用的图片压缩方式,适合于一些对图片质量要求不高,但需要减小文件大小的场景。然而在一些对图片质量要求较高的场景,或者对内存占用有限制的场景,可能需要使用其他更加复杂的压缩方案来达到更好的效果。
点击了解资源详情
点击了解资源详情
点击了解资源详情
701 浏览量
2371 浏览量
3173 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
zzzzl333
- 粉丝: 786
- 资源: 7万+
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程