图片质量压缩方法
/**
* 压缩图片方法
*
* @param bitmap
* @return
*/
private Bitmap ImageCompressL(Bitmap bitmap) {
double targetwidth = Math.sqrt(100.00 * 1000);//约等于100多KB,可自行进行调节
if (bitmap.getWidth() > targetwidth || bitmap.getHeight() > targetwidth) {
// 创建操作图片用的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);
}
return bitmap;
}
通过如下代码可将压缩后的图片保存至本地
File file = new File(PATH + System.currentTimeMillis() + ".jpg");//定义一个file
Bitmap bitmap1 = ImageCompressL(bitmap);//压缩后的BitMap
try {
//写入本地
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bitmap1.compress(Bitmap.CompressFormat.JPEG, 100, bos);
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}