2012-03-17 24 views
9

Quiero recortar la parte roja de la siguiente imagen, ¿Hay algún método simple disponible en Android que pueda recortar la imagen siguiente?Recortar parte particular de la imagen en Android

Sample Image that i want to crop

He encontrado muchos SO preguntas pero todos están sugiriendo que se usa siguiente código:

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

Este trabajo código bien si el ancho & altura son alrededor resolución de 2 MP, pero si que surgieron parte es más de 3MP de resolución que la aplicación se estrelló con error OOM.

¿Hay alguna manera de manejar la imagen de más de 3MP durante el recorte?

Respuesta

6

Puede utilizar el siguiente código que puede resolver su problema.

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

Por encima de hacer postScalling método de imagen antes de recortar, para que pueda obtener el mejor resultado con la imagen recortada sin obtener errores OOM.

Para más detalles se puede consultar this blog

+0

¿Cuál es el uso de postScale? – Swapnil

1

1- Cambiar su imageview de mapa de bits

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

2- usa tu mapa de bits para recortar lo que quieras

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

3-Cuida x, y de la parte superior e izquierda

4 a una vista previa del mapa de bits de nuevo en su imageview

imageView.setImageBitmap(croppedBmp); 
0

Si desea cortar la imagen en cualquier forma o solamente parte seleccionado a continuación, puede usar ready made open source library

Cuestiones relacionadas