android bitmap缩放

package com.dengfan;


import android.graphics.Bitmap;
import android.graphics.Matrix;


public class BitmapZoom 
{

/**
* 按指定比例压缩
* @param srcBitmap
* @param percent
* @return
*/
public static Bitmap bitmapZoomByPercent(Bitmap srcBitmap ,double percent)
{
int srcWidth = srcBitmap.getWidth();   
        int srcHeight = srcBitmap.getHeight();    
  
        float scaleWidth = (float) percent;   
        float scaleHeight = (float) percent;   
  
        return bitmapZoomByScale(srcBitmap, scaleWidth, scaleHeight);
}

/**
* 按照指定长宽压缩
* @param srcBitmap
* @param newWidth
* @param newHeight
* @return
*/
public static Bitmap bitmapZoomBySize(Bitmap srcBitmap,int newWidth,int newHeight)
{
int srcWidth = srcBitmap.getWidth();   
        int srcHeight = srcBitmap.getHeight();    
  
        float scaleWidth = ((float) newWidth) / srcWidth;   
        float scaleHeight = ((float) newHeight) / srcHeight;   
  
        return bitmapZoomByScale(srcBitmap, scaleWidth, scaleHeight);
}

/**
* 按照高度的百分比压缩
* @param srcBitmap
* @param newHeight
* @return
*/
public static Bitmap bitmapZoomByHeight(Bitmap srcBitmap,int newHeight)
{
int srcWidth = srcBitmap.getWidth();   
        int srcHeight = srcBitmap.getHeight();    
     
        float scaleHeight = ((float) newHeight) / srcHeight;   
        float scaleWidth = scaleHeight;
        
        return bitmapZoomByScale(srcBitmap, scaleWidth, scaleHeight);
}

/**
* 按照宽度的百分比压缩
* @param srcBitmap
* @param newHeight
* @return
*/
public static Bitmap bitmapZoomByWidth(Bitmap srcBitmap,int newWidth)
{
int srcWidth = srcBitmap.getWidth();   
        int srcHeight = srcBitmap.getHeight();    
     
        float scaleWidth = ((float) newWidth) / srcWidth;   
        float scaleHeight = scaleWidth;
        
        return bitmapZoomByScale(srcBitmap, scaleWidth, scaleHeight);
}

/**
* 使用长宽缩放比缩放
* @param srcBitmap
* @param scaleWidth
* @param scaleHeight
* @return
*/
public static Bitmap bitmapZoomByScale(Bitmap srcBitmap,float scaleWidth,float scaleHeight)
{
int srcWidth = srcBitmap.getWidth();   
        int srcHeight = srcBitmap.getHeight();  
Matrix matrix = new Matrix();   
        matrix.postScale(scaleWidth, scaleHeight);     
        Bitmap resizedBitmap = Bitmap.createBitmap(srcBitmap, 0, 0, srcWidth,   
        srcHeight, matrix, true);
        if(resizedBitmap != null)
        {
        return resizedBitmap;
        }
        else
        {
       
        return srcBitmap;
        }
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值