Обрезать изображение после выбора изображения из галереи или захвата изображения с камеры телефона можно с помощью Обрезка изображения
override fun onActivityResult(requestCode: Int, resultCode: Int, data:
Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK)
when(requestCode){
GALLERY -> {
val selectedImage: Uri = data!!.data
cropImage(selectedImage,CROP_REQUEST)
}
CROP_REQUEST->{
if (data != null) {
val imageUri = data.data
//now you can send this cropped image to the server
}
}
}
// function for croping the image
fun cropImage(uri: Uri,CROP_REQUEST:Int) {
this.grantUriPermission(
"com.android.camera", uri,
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
val intent = Intent("com.android.camera.action.CROP")
intent.setDataAndType(uri, "image/*")
//Android N need set permission to uri otherwise system camera don't
//has permission to access file wait crop
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
intent.putExtra("crop", "true")
//The proportion of the crop box is 1:1
intent.putExtra("aspectX", 1)
intent.putExtra("aspectY", 1)
//Crop the output image size
intent.putExtra("outputX", 500)
intent.putExtra("outputY", 500)
//image type
intent.putExtra("outputFormat", "JPEG")
intent.putExtra("noFaceDetection", true)
//true - don't return uri | false - return uri
intent.putExtra("return-data", false)
startActivityForResult(intent, CROP_REQUEST)
}