Android 根据图片路径生成新图片

/**
 * 新图片保存路径
 * @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;
}

 

posted @ 2019-06-24 16:30  Ayinger  阅读(1326)  评论(0编辑  收藏  举报