- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android中图片压缩方案详解要点
Android中图片压缩方案详解
1、质量压缩法
设置bitmap options属性,降低图片的质量,像素不会减少
第一个参数为需要压缩的bitmap图片对象,第二个参数为压缩后图片保存的位置
设置options 属性0-100,来实现压缩。
private Bitmap compressImage(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
press(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 100;
while ( baos.toByteArray().length / 1024100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩
baos.reset();//重置baos即清空baos
press(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中
options -= 10;//每次都减少10
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片
return bitmap;
}
质量压缩不会减少图片的像素。它是在保持像素不变的前提下改变图片的位深及透明度等,来达到压缩图片的目的。进过它压缩的图片文件大小会有改变,但是导入成bitmap后占得内存是不变的。因为要保持像素不变,所以它就无法无限压缩,到达一个值之后就不会继续变小了。显然这个方法并不适用于缩略图,其实也不适用于想通过压缩图片减少内存的适用,仅仅适用于想在保证图片质量的同时减少文件大小的情况而已。
2、采样率压缩法
private Bitmap getimage(String srcPath) {
BitmapFactory.Options newOpts = new BitmapFactory.Options();
//开始读入图片,此时把options.inJustDecodeBounds 设回true了
newOpts.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(srcPath,newOpts);//此时返回bm为空
newOpts.inJustDecodeBounds = false;
int w = newOpts.outWidth;
int h = newOpts.outHeight;
//现在主流手机比较多是1280*720分辨率,所以高和宽我们设置为
float hh = 1280f;//这里设置高度为1280f
float ww = 720f;//这里设置宽度为720f
//缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
int be = 1;//be=1表示不缩放
if (w h w ww) {//如果宽度大的话根据宽度固定大小缩放
be = (int) (newOpts.outWidth / ww);
} else if (w h h hh) {//如果高度高的话根据宽度固定大小缩放
be = (int) (newOpts.outHeight / hh);
}
if (be = 0)
be = 1;
newOpts.inSample
您可能关注的文档
- 课堂新坐标2016_2017学年高中物理第2章固体第1节晶体和非晶体课件.ppt
- 2.3.1 直线与平面垂直的判定(公开课).ppt
- 课堂新坐标2016_2017学年高中物理第2章楞次定律和自感现象第3节自感现象的应用课件.ppt
- ADAMS-技术入门与提高课件.ppt
- Agilent1100操作方法.doc
- 2.3.1 直线与平面垂直的判定与性质.ppt
- 课堂新坐标2016_2017学年高中物理第2章圆周运动2匀速圆周运动的向心力和向心加速度课件.ppt
- 2.3.1直线与平面垂直的判定(天地英豪版0).ppt
- Adobe_Photoshop_路径终极教程.ppt
- 课堂新坐标2016_2017学年高中物理第2章磁场章末分层突破课件.ppt
最近下载
- 全面预算管理操作实施手册汇总.pdf VIP
- 空调安装质量保证措施和创优计划.docx VIP
- 2025陕西延长石油(集团)有限责任公司招聘(1881人)笔试备考题库及参考答案详解一套.docx VIP
- 汉字的“六书”理论.ppt VIP
- 高考语文作文的命题趋势研究.pptx VIP
- Rexroth力士乐电动缸EMC说明书.pdf VIP
- 2008年修电脑1400张照片连接.docx VIP
- 2023年重庆小升初一三八巴蜀育才巴川入学考试宝典及语文、数学试题.doc VIP
- 2025年5月新高考语文全国Ⅰ卷各地模考试题汇编之古代诗歌鉴赏.docx VIP
- 吹瓶机安全操作规程培训.pptx VIP
文档评论(0)