/**
* 新图片保存路径
* @param oldPicPath
* @param isCover
* @return
*/
private String createCompressPic(String oldPicPath,boolean isCover) {
if(TextUtils.isEmpty(oldPicPath)){
return "";
}
if(!obtainPicSize(oldPicPath)){
return "";
}
Bitmap bitmap = getCompressBitmap(oldPicPath);
String picPath ="";
File file;
if(isCover){ // 覆盖原图
picPath = oldPicPath;
}else {
picPath = oldPicPath.substring(0,oldPicPath.lastIndexOf(".")) +"_dis.jpg";
}
file = new File(picPath);
if(file.exists()){
file.delete();
}
try {
FileOutputStream fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG,100,fos);
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
return file.getAbsolutePath();
}
/***
* 动态获取图像的宽高
* @param recogPicPath 识别图像路径
*/
private boolean obtainPicSize(String recogPicPath) {
try {
File file = new File(recogPicPath);
BitmapFactory.Options options = null;
if (!file.exists()) {
Toast.makeText(context, "读取文件不存在",
Toast.LENGTH_LONG).show();
return false;
}
options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(recogPicPath, options);
if (options == null) {
return false;
}
curPicWidth = options.outWidth;
curPicHeight = options.outHeight;
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
/**
* 生成bitmap数据
* @param path
* @return
*/
public Bitmap getCompressBitmap(String path){
Bitmap bitmap = null;
bitmap = BitmapFactory.decodeFile(path);
if(bitmap != null){
bitmap = Bitmap.createBitmap(bitmap, 0, 0, curPicWidth, curPicHeight);
}
return bitmap;
}