J'essaie de réduire la taille des images récupérées de la caméra (donc ~ 5-8 méga pixels) jusqu'à un plus petit nombre de tailles (le plus grand étant 1024x768). J'ai essayé le code suivant mais j'ai toujours un .Redimensionnement d'image efficace de la mémoire dans Android
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 semble que le OOM se produit au cours de la createBitmap
. Y a-t-il une manière plus efficace de mémoire de faire ceci? Peut-être quelque chose qui ne nécessite pas que je charge tout l'original en mémoire?
Non, je me sers du 'android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI' pour permettre à l'utilisateur de sélectionner une image. – Sionide21