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.