调用系统剪切方法,剪切任意比例图片

最新有个项目需要用到剪切图片上传的功能,百度了一片,发现输出图片的比例都是固定的,经过一些思考,找到了方法

如果就这样直接不压缩图像,直接输出的话手机会无响应,有时还会卡死,关键所在就是压缩图片在输出

 

/**
* 裁剪图片方法实现
* 
* @param uri
*/
public void startPhotoZoom(Uri uri) {
// Intent intent = new Intent();
Intent intent = new Intent("com.android.camera.action.CROP");
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(
this.getContentResolver(), uri);
int iTemp = bitmap.getByteCount();


Matrix matrix = new Matrix();
// 根据图片大小来判断剪切比例
if (iTemp > 10000000) {
matrix.postScale(0.1f, 0.1f); // 长和宽放大缩小的比例
} else {
matrix.postScale(0.5f, 0.5f); // 长和宽放大缩小的比例
}


Bitmap resizeBmp = Bitmap.createBitmap(bitmap, 0, 0,
bitmap.getWidth(), bitmap.getHeight(), matrix, true);


Uri mUri = Uri.parse(MediaStore.Images.Media.insertImage(
getContentResolver(), resizeBmp, null, null));


intent.setDataAndType(mUri, "image/*");
} catch (FileNotFoundException e) {


e.printStackTrace();
} catch (IOException e) {


e.printStackTrace();
}



 

你可能感兴趣的:(压缩,bitmap,图片,uri,Matrix)