/**
* 计算降采样率的算法
* @param options
* @param maxWidth
* @param maxHeight
* @return
*/
public static int calculateInSampleSize(BitmapFactory.Options options, int maxWidth, int maxHeight) {
//这里其实是获取到默认的高度和宽度,也就是图片的实际高度和宽度
final int height = options.outHeight;
final int width = options.outWidth;
//默认采样率为1,也就是不变嘛。
int inSampleSize = 1;
//===============核心算法啦====================
if (width > maxWidth || height > maxHeight) {
if (width > height) {
inSampleSize = Math.round((float) height / (float) maxHeight);
} else {
inSampleSize = Math.round((float) width / (float) maxWidth);
}
final float totalPixels = width * height;
final float maxTotalPixels = maxWidth * maxHeight * 2;
while (totalPixels / (inSampleSize * inSampleSize) > maxTotalPixels) {
inSampleSize++;
}
}
//=============核心算法end================
return inSampleSize;
}
CalculateInSampleSize-计算大图降采样率的方法
于 2022-02-08 23:19:49 首次发布