package com.example.aa;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.util.FloatMath;
/**
* 载入图片的方法
*
* @author Administrator
*
*/
public class CompressPicture {
// 直接载入图片
public static Bitmap getBitmap(String path) {
Bitmap bt = BitmapFactory.decodeFile(path);
return bt;
}
// 指定大小載入圖片
public static Bitmap getBitmap(String path, int size) {
Options op = new Options();
op.inSampleSize = size;
Bitmap bt = BitmapFactory.decodeFile(path, op);
return bt;
}
// 按寬高壓縮載入圖片
public static Bitmap getBitmap(String path, int width, int heigh) {
Options op = new Options();
op.inJustDecodeBounds = true;
Bitmap bt = BitmapFactory.decodeFile(path, op);
int xScale = op.outWidth / width;
int yScale = op.outHeight / heigh;
op.inSampleSize = xScale > yScale ? xScale : yScale;
op.inJustDecodeBounds = false;
bt = BitmapFactory.decodeFile(path, op);
return bt;
}
// 按寬高壓縮載入圖片方法2
public static Bitmap getBitmap2(String imageFilePath, int displayWidth,
int displayHeight) {
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bitmapOptions);
// 编码后bitmap的宽高,bitmap除以屏幕宽度得到压缩比
int widthRatio = (int) FloatMath.ceil(bitmapOptions.outWidth
/ (float) displayWidth);
int heightRatio = (int) FloatMath.ceil(bitmapOptions.outHeight
/ (float) displayHeight);
if (widthRatio > 1 && heightRatio > 1) {
if (widthRatio > heightRatio) {
// 压缩到原来的(1/widthRatios)
bitmapOptions.inSampleSize = widthRatio;
} else {
bitmapOptions.inSampleSize = heightRatio;
}
}
bitmapOptions.inJustDecodeBounds = false;
bmp = BitmapFactory.decodeFile(imageFilePath, bitmapOptions);
return bmp;
}
}