public File compress(String filePath) {
File sourceFile = new File(filePath);
if (sourceFile.length() < 1024 * 1024 * 2) {
return sourceFile;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, options);
options.inSampleSize = 6;
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);
return saveBitmap(filePath, bitmap);
}
public File saveBitmap(String path, Bitmap mBitmap) {
File filePic = null;
FileOutputStream fos = null;
try {
filePic = new File(path);
if (!filePic.exists()) {
filePic.getParentFile().mkdirs();
filePic.createNewFile();
} else {
filePic.delete();
}
fos = new FileOutputStream(filePic);
mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
return filePic;
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
if (null != fos) {
try {
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}