没有合适的资源?快使用搜索试试~ 我知道了~
Android实现图片压缩(bitmap的六种压缩方式)
7 下载量 12 浏览量
2020-08-31
12:29:08
上传
评论
收藏 126KB PDF 举报
温馨提示
试读
3页
Android中图片是以bitmap形式存在的,这篇文章主要介绍了Android实现图片压缩(bitmap的六种压缩方式),有兴趣的可以了解一下。
资源推荐
资源详情
资源评论
Android实现图片压缩(实现图片压缩(bitmap的六种压缩方式)的六种压缩方式)
Android中图片是以bitmap形式存在的,这篇文章主要介绍了Android实现图片压缩(bitmap的六种压缩方式),
有兴趣的可以了解一下。
Android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存
大小计算方式:
图片长度 x 图片宽度 x 一个像素点占用的字节数
以下是图片的压缩格式:
其中,A代表透明度;R代表红色;G代表绿色;B代表蓝色。
ALPHA_8
表示8位Alpha位图,即A=8,一个像素点占用1个字节,它没有颜色,只有透明度
ARGB_4444
表示16位ARGB位图,即A=4,R=4,G=4,B=4,一个像素点占4+4+4+4=16位,2个字节
ARGB_8888
表示32位ARGB位图,即A=8,R=8,G=8,B=8,一个像素点占8+8+8+8=32位,4个字节
RGB_565
表示16位RGB位图,即R=5,G=6,B=5,它没有透明度,一个像素点占5+6+5=16位,2个字节
我是用的小米手机2s来测试的,从sd卡取出一个照片,如下所示:
bit = BitmapFactory.decodeFile(Environment
.getExternalStorageDirectory().getAbsolutePath()
+ "/DCIM/Camera/test.jpg");
Log.i("wechat", "压缩前图片的大小" + (bit.getByteCount() / 1024 / 1024)
+ "M宽度为" + bit.getWidth() + "高度为" + bit.getHeight());
出来的log是:
将取得的bitmap进行压缩,下面开始说,bitmap的几种压缩方式。
1.质量压缩质量压缩
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int quality = Integer.valueOf(editText.getText().toString());
bit.compress(CompressFormat.JPEG, quality, baos);
byte[] bytes = baos.toByteArray();
bm = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Log.i("wechat", "压缩后图片的大小" + (bm.getByteCount() / 1024 / 1024)
+ "M宽度为" + bm.getWidth() + "高度为" + bm.getHeight()
+ "bytes.length= " + (bytes.length / 1024) + "KB"
+ "quality=" + quality);
其中quality是从edittext获取的数字,可以从0–100改变,这里出来的log是:
资源评论
weixin_38669881
- 粉丝: 5
- 资源: 918
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功