Redimensionnement d'image efficace dans la mémoire sous Android

Je suis en train de réduire la taille des images extraites forme de la caméra (donc ~5 à 8 méga pixels) à un un un peu plus petites tailles (le plus important étant de 1024x768). J'ai Essayé le code suivant mais j'ai toujours obtenir un OutOfMemoryError.

Bitmap image = BitmapFactory.decodeStream(this.image, null, opt);
int imgWidth = image.getWidth();
int imgHeight = image.getHeight();

//Constrain to given size but keep aspect ratio
float scaleFactor = Math.min(((float) width) / imgWidth, ((float) height) / imgHeight);

Matrix scale = new Matrix();
scale.postScale(scaleFactor, scaleFactor);
final Bitmap scaledImage = Bitmap.createBitmap(image, 0, 0, imgWidth, imgHeight, scale, false);

image.recycle();

Il ressemble à la OOM qui se passe pendant la createBitmap. Est-il plus efficace en terme de mémoire façon de le faire? Peut-être que quelque chose ne va pas m'obliger à charge de la totalité de l'original dans la mémoire?

source d'informationauteur Sionide21