项目中用到上传图片,但是手机拍出来的图片都比较大,需要进行压缩,所以找了下图片压缩的方法,看到这篇博文还不错。记录下:
原文地址:http://104zz.iteye.com/blog/1694762
第一:我们先看下质量压缩方法:
-
privateBitmapcompressImage(Bitmapimage){
-
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
image.compress(Bitmap.CompressFormat.JPEG,100,baos);
-
intoptions=100;
-
while(baos.toByteArray().length/1024>100){
-
baos.reset();
-
image.compress(Bitmap.CompressFormat.JPEG,options,baos);
-
options-=10;
-
}
-
ByteArrayInputStreamisBm=newByteArrayInputStream(baos.toByteArray());
-
Bitmapbitmap=BitmapFactory.decodeStream(isBm,null,null);
-
returnbitmap;
-
}
第二:图片按比例大小压缩方法(根据路径获取图片并压缩):
-
privateBitmapgetimage(StringsrcPath){
-
BitmapFactory.OptionsnewOpts=newBitmapFactory.Options();
-
-
newOpts.inJustDecodeBounds=true;
-
Bitmapbitmap=BitmapFactory.decodeFile(srcPath,newOpts);
-
-
newOpts.inJustDecodeBounds=false;
-
intw=newOpts.outWidth;
-
inth=newOpts.outHeight;
-
-
floathh=800f;
-
floatww=480f;
-
-
intbe=1;
-
if(w>h&&w>ww){
-
be=(int)(newOpts.outWidth/ww);
-
}elseif(w<h&&h>hh){
-
be=(int)(newOpts.outHeight/hh);
-
}
-
if(be<=0)
-
be=1;
-
newOpts.inSampleSize=be;
-
-
bitmap=BitmapFactory.decodeFile(srcPath,newOpts);
-
returncompressImage(bitmap);
-
}
第三:图片按比例大小压缩方法(根据Bitmap图片压缩):
-
privateBitmapcomp(Bitmapimage){
-
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
image.compress(Bitmap.CompressFormat.JPEG,100,baos);
-
if(baos.toByteArray().length/1024>1024){
-
baos.reset();
-
image.compress(Bitmap.CompressFormat.JPEG,50,baos);
-
}
-
ByteArrayInputStreamisBm=newByteArrayInputStream(baos.toByteArray());
-
BitmapFactory.OptionsnewOpts=newBitmapFactory.Options();
-
-
newOpts.inJustDecodeBounds=true;
-
Bitmapbitmap=BitmapFactory.decodeStream(isBm,null,newOpts);
-
newOpts.inJustDecodeBounds=false;
-
intw=newOpts.outWidth;
-
inth=newOpts.outHeight;
-
-
floathh=800f;
-
floatww=480f;
-
-
intbe=1;
-
if(w>h&&w>ww){
-
be=(int)(newOpts.outWidth/ww);
-
}elseif(w<h&&h>hh){
-
be=(int)(newOpts.outHeight/hh);
-
}
-
if(be<=0)
-
be=1;
-
newOpts.inSampleSize=be;
-
-
isBm=newByteArrayInputStream(baos.toByteArray());
-
bitmap=BitmapFactory.decodeStream(isBm,null,newOpts);
-
returncompressImage(bitmap);
-
}
分享到:
相关推荐
靠谱的图片压缩方法图片压缩.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
libjpeg 进行大图压缩无损,包靠谱。网上的压缩代码都是坑,都是有损的。
我在CSDN总结的一些比较靠谱的比较靠的4个项目希望能帮到大家。
Android环境配置(一步到位,绝对的靠谱)
这是一款业内领先的电脑图片...有视频压缩需要的亲们也可以满足需求哦,那么大家想知道压缩图片用什么软件好用或者还不清楚图片无损压缩软件哪个好吗,威航软件园可以很负责任的告诉大家这绝对是一个非常靠谱的选择。
数据标注有哪些平台比较靠谱,数据标注有哪些平台可以学习
自己整理的一份比较靠谱的flash 面试题 自己整理的一份比较靠谱的flash 面试题 性能优化 各个框架。细枝末节。。等
CountdownTimer.rar 开发环境:ubuntu10.04+eclipse galileo
推荐求职者-国内比较靠谱的招聘网站.doc
网上看了好多android下调用脚本的例子,在没有root的情况下,大多只能执行一些简单的脚本命令,经验证,总结出一种还算比较有用的方法,可以较多数脚本,算是比较靠谱,共享下
面试总结js 靠谱靠谱靠谱.md
安卓模拟器社区(靠谱社区)是中国最大的安卓模拟器交流论坛,下载靠谱助手安卓模拟器可在PC电脑上极速运行安卓手游和应用。最全手机游戏电脑版攻略心得!
这是一款业内领先的电脑图片...有视频压缩需要的亲们也可以满足需求哦,那么大家想知道压缩图片用什么软件好用或者还不清楚图片无损压缩软件哪个好吗,威航软件园可以很负责任的告诉大家这绝对是一个非常靠谱的选择。
靠谱助手是世界最大的安卓模拟器。内有百万应用可供你下载!
文华财经指标公式源码期货软件指标赢顺云指标短线指标哪个比较靠谱.doc
文华财经指标公式源码WH6指标公式赢顺云日内指标哪个比较靠谱.doc
文华财经指标公式源码WH6指标公式赢顺云短线指标哪个比较靠谱.doc
文华财经期货软件指标公式源码期货指标赢顺云短线指标哪个比较靠谱.doc
最新北京租房用哪个app比较靠谱北京市租房热门协议书DOC最新版.docx
文华财经期货软件指标公式源码期货指标赢顺云指标日内指标哪个比较靠谱.doc