图片缩小的类

public class BitmapUtilities {


    public BitmapUtilities() {
            // TODO Auto-generated constructor stub
    }
    
    public static Bitmap getBitmapThumbnail(String path,int width,int height){
            Bitmap bitmap = null;
            //这里可以按比例缩小图片:
            /*BitmapFactory.Options opts = new BitmapFactory.Options();
            opts.inSampleSize = 4;//宽和高都是原来的1/4
            bitmap = BitmapFactory.decodeFile(path, opts); */
            
            /*进一步的,
                如何设置恰当的inSampleSize是解决该问题的关键之一。BitmapFactory.Options提供了另一个成员inJustDecodeBounds。
               设置inJustDecodeBounds为true后,decodeFile并不分配空间,但可计算出原始图片的长度和宽度,即opts.width和opts.height。
               有了这两个参数,再通过一定的算法,即可得到一个恰当的inSampleSize。*/
            BitmapFactory.Options opts = new BitmapFactory.Options();
        opts.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(path, opts); 
        opts.inSampleSize = Math.max((int)(opts.outHeight / (float) height), (int)(opts.outWidth / (float) width));
        opts.inJustDecodeBounds = false;
        bitmap = BitmapFactory.decodeFile(path, opts);
            return bitmap;
    }
    
    public static Bitmap getBitmapThumbnail(Bitmap bmp,int width,int height){
            Bitmap bitmap = null;
            if(bmp != null ){
                    int bmpWidth = bmp.getWidth();
                    int bmpHeight = bmp.getHeight();
                    if(width != 0 && height !=0){
                            Matrix matrix = new Matrix();
                            float scaleWidth = ((float) width / bmpWidth);
                            float scaleHeight = ((float) height / bmpHeight);
                            matrix.postScale(scaleWidth, scaleHeight);
                            bitmap = Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true);
                    }else{
                            bitmap = bmp;
                    }
            }
            return bitmap;
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值