您的位置:首页 > 移动开发 > Android开发

android创建固定宽度,高度的图片,比例缩放

2016-09-20 19:36 537 查看
/**
* resize图片.创建固定宽度的新图片<br />
* 缩小
*
* @param src
* @param dstWidth
* @return Bitmap
*/
public Bitmap createBitmap(Bitmap src, int dstWidth) throws Exception {

Bitmap ret = null;

int srcWidth = src.getWidth();
int srcHeight = src.getHeight();

float ratio = ((float) dstWidth) / srcWidth;
if (ratio >= 1)
return src;
int dstHeight = (int) (srcHeight * ratio);

ret = Bitmap.createScaledBitmap(src, dstWidth, dstHeight, false);

// return
return ret;
}

/**
* resize图片.创建固定宽度高度的新图片<br />
* 先缩小后剪切
*
* @param src
* @param dstWidth
* @param dstHeight
* @return Bitmap
*/
public Bitmap createBitmap(Bitmap src, int dstWidth, int dstHeight) {

Bitmap ret = null;

int srcWidth = src.getWidth();
int srcHeight = src.getHeight();

float ratioX = ((float) dstWidth) / srcWidth;
float ratioY = ((float) dstHeight) / srcHeight;

float ratio = ratioX > ratioY ? ratioX : ratioY;

int orgWidth = (int) (srcWidth * ratio);
int orgHeight = (int) (srcHeight * ratio);

// 缩小
Bitmap org = Bitmap.createScaledBitmap(src, orgWidth, orgHeight, false);

// 剪切
ret = Bitmap.createBitmap(org, 0, 0, dstWidth > orgWidth ? orgWidth : dstWidth,
dstHeight > orgHeight ? orgHeight : dstHeight);

// return
return ret;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片 android