android 比较靠谱的图片压缩第一:我们先看下质量压缩方法:
第二:图片按比例大小压缩方法(根据路径获取图片并压缩):
第三:图片按比例大小压缩方法(根据Bitmap图片压缩):
评论
1 楼
edwar12345
2012-12-17
兄弟,看了你的博客,对压缩又有收获。。同时,指出你的循环里一个问题。。如下: ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; while ( baos.toByteArray().length / 1024>100) { baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, options, baos); options -= 10;//每次都减少10 } 问题就是: 当options=100,while判断为真时,循环体内,compress方法还是按options=100压缩,然后options才自减。。 等于多执行了一次循环体。。 建议: 压缩代码 和 自减代码 调换位置,从而节省一次循环。。 另: 一,根据我的压缩实践,我的手机。。 压缩前后图片大小如下: 100%-116201 90%-37754 80%-25571 故, 第一次90%压缩,图片大小大幅度降低。第二次80%压缩(相当于90%*80% = 72%压缩),大小已经下降幅度不大了。 结论一:所以,可以第一次直接options = 90压缩,跳过=100 的压缩。 二, 图片比例压缩时, 我看到一个算法,说比较快。。 be = (int) ((w / STANDARD_WIDTH + h/ STANDARD_HEIGHT) / 2); 结论二:图片比例压缩倍数 就是 (宽度压缩倍数+高度压缩倍数)/2.. 三,再刚生成图片时,options里设置如下: newOpts.inPreferredConfig = Config.RGB_565;//降低图片从ARGB888到RGB565 结论三:图片配置系数用RGB_565, 默认是24位的ARGB_888 |
|
来自: JUST SO LAZY > 《java\android》