压缩图片

/**
 * 压缩图片
 * @param targetwidth 压缩的目标大小 例如将图片等比压缩到 1080 * xxxx 或者 xxxx * 1080 输入 1080 即可
 */
private void CompressPic(double targetwidth) {
    Bitmap bitmap =  BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().toString() +"/DCIM/pic.jpg");
    //double targetwidth = 1080;//;Math.sqrt(64.00 * 1000);// 1280
    Log.i("输出", "图片处理开始..");
    // 创建操作图片用的matrix对象
    Matrix matrix = new Matrix();
    // 计算宽高缩放率
    double x = Math.max(targetwidth / bitmap.getWidth(), targetwidth
            / bitmap.getHeight());
    // 缩放图片动作
    matrix.postScale((float) x, (float) x);
    bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
            bitmap.getHeight(), matrix, true);
    String compressPicPath =  Environment.getExternalStorageDirectory().toString() +"/DCIM/pic_cmp.jpg";
    File file = new File(compressPicPath);
    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();
    }
}

  

原文地址:https://www.cnblogs.com/Ayinger/p/11133842.html