Como cambiar de tamaño una imagen (bitmap)

Objetivo:

Cambiar de tamaño una imagen (objeto de la clase Bitmap), para reducirlo o ampliarlo hasta un nuevo tamaño deseado.

Para ello podemos usar la función que hay más abajo, llamada redimensionarImagenMaximo(Bitmap mBitmap, float newWidth, float newHeigth), donde los parámetros serán el Bitmap que deseamos redimensionar, la nueva anchura y la nueva altura.

La función calcula una nueva escala, aplicandolas a una instancia de la clase Matrix, y posteriormente creando de un nuevo Bitmap, que vendrá ya con las nuevas dimensiones.

A continuación mostramos la función, la cual devolverá una nueva instancia de la clase Bitmap, que contendrá nuestra imagen ya redimensionada.

Código fuente función (Java):

[sourcecode language=”java”]
/**
* Redimensionar un Bitmap. By TutorialAndroid.com
* @param Bitmap mBitmap
* @param float newHeight
* @param float newHeight
* @param float newHeight
* @return Bitmap
*/
public Bitmap redimensionarImagenMaximo(Bitmap mBitmap, float newWidth, float newHeigth){
//Redimensionamos
int width = mBitmap.getWidth();
int height = mBitmap.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeigth) / height;
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
return Bitmap.createBitmap(mBitmap, 0, 0, width, height, matrix, false);
}
[/sourcecode]