Обрезать определенную часть изображения в android

Я хочу обрезать красную часть из следующего изображения. Есть ли какой-либо простой метод в android, который может обрезать следующий образ.

Образец изображения, который я хочу обрезать

Я нашел много вопросов, но все предлагают использовать следующий код:

Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100); 

Этот код работает хорошо, если ширина и высота около 2 МП, но если эта обрезанная часть более 3-мегапиксельного разрешения, чем приложение обрушилось с ошибкой OOM.

Есть ли способ обрабатывать изображение более 3 МП во время обрезки?

Solutions Collecting From Web of "Обрезать определенную часть изображения в android"

Вы можете использовать следующий код, который может решить вашу проблему.

 Matrix matrix = new Matrix(); matrix.postScale(0.5f, 0.5f); Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100, matrix, true); 

Выше метод делает postScalling изображения перед обрезкой, так что вы можете получить лучший результат с обрезанным изображением без получения ошибки OOM.

Более подробную информацию вы можете найти в этом блоге

См. Эту ссылку http://www.londatiga.net/featured-articles/how-to-select-and-crop-image-on-android/, а исходный код находится в этой ссылке https://github.com/lorensiuswlt / AndroidImageCrop

1- Изменение изображения для растрового изображения

 final Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.img); 

2 – используйте растровое изображение, чтобы обрезать то, что вы хотите

 Bitmap croppedBmp = Bitmap.createBitmap(bitmap, x, y , width , height); 

3-Берегитесь x, y сверху и слева

4- для предварительного просмотра растрового изображения в вашем изображении

 imageView.setImageBitmap(croppedBmp); 

Если вы хотите обрезать изображение в любой форме или только выбранную часть, вы можете использовать готовую библиотеку с открытым исходным кодом