Bonjour,
J'ai une image d'environ 1500px x 900px de ma galerie du téléphone et quand je la sélectionne j'ai une erreur de type "VM Budget - Out of Memory". J'ai trouvé une méthode (voir ci-dessous) qui me permet de contourner le problème.
Cependant lorsque j'utiliise cette méthode, la qualité de mon image est vraiment pas belle sachant que la qualité de l'originale est très bonne.
Comment faire pour garder à la fois une bonne qualité de l'image, le bon ratio (car je veux aussi redimensionner mon image à 700px'") et contourner le problème de Out of Memory
Merci de votre aide.
Ma méthode permettant de contourner le problème Out of Memory
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 private Bitmap decodeFile(File f){ try { //Decode image size BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeStream(new FileInputStream(f),null,o); //The new size we want to scale to final int REQUIRED_SIZE=70; //Find the correct scale value. It should be the power of 2. int scale=1; while(o.outWidth/scale/2>=REQUIRED_SIZE && o.outHeight/scale/2>=REQUIRED_SIZE) scale*=2; //Decode with inSampleSize BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize=scale; return BitmapFactory.decodeStream(new FileInputStream(f), null, o2); } catch (FileNotFoundException e) {} return null; }
Partager