首页 > 其他 > 详细

图片压缩

时间:2015-11-09 12:41:53      阅读:198      评论:0      收藏:0      [点我收藏+]

 public static Bitmap getSmallBitmap(String filePath, int width, int height) {
        BitmapFactory.Options options = new BitmapFactory.Options();

        options.inPreferredConfig = Config.RGB_565;
        options.inPurgeable = true;// 允许可清除
        options.inInputShareable = true;// 以上options的两个属性必须联合使用才会有效果

        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(filePath, options);

        // Calculate inSampleSize
        options.inSampleSize = calculateInSampleSize(options, width, height);

        // Decode bitmap with inSampleSize set
        options.inJustDecodeBounds = false;

        return BitmapFactory.decodeFile(filePath, options);
    }

 

用BitmapFactory解码一张图片时,有时会遇到该错误。这往往是由于图片过大造成的。要想正常使用,则需要分配更少的内存空间来存储。

设置恰当的inSampleSize是解决该问题的关键之一

设置inJustDecodeBounds为true后,decodeFile并不分配空间,但可计算出原始图片的长度和宽度,即opts.width和opts.height。有了这两个参数,再通过一定的算法,即可得到一个恰当的inSampleSize。

 

图片压缩

原文:http://www.cnblogs.com/xidada/p/4949478.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!