Tuve que crear una función para poder “recortar” o “cropear” una imagen en una aplicación blackberry. Para ello hice empleo de los métodos Bitmap.getARGB() y Bitmap.setARGB():
public static EncodedImage cropImage(EncodedImage image, int width, int height) { EncodedImage result = null; Bitmap bmp = new Bitmap(width, height); Bitmap original = image.getBitmap(); int x = (original.getWidth() / 2) - (width / 2); // Centre el ancho de la img a recortar int y = (original.getHeight() / 2) - (height / 2); // Centre el alto de la img a recortar int[] argb = new int[width * height]; original.getARGB(argb, 0, width, x, y, width, height); bmp.setARGB(argb, 0, width, 0, 0, width, height); result = JPEGEncodedImage.encode(bmp, 100); return result; }
En este caso en particular, se recorta al centro de la imagen el tamaño deseado. Considerando el código, seria bueno poner algunos controles sobre el tamaño de la imagen a recortar para que no ingresen dimensiones mayores de la imagen origninal. Tambien seria bueno checkear que el contenido sea valido y atrapar excepciones.