2013-09-03 7 views
3

J'ai créé une application qui utilise des sockets dans laquelle le client reçoit l'image et stocke les données de l'image dans la classe Bitmap ....création .bmp fichier image de la classe Bitmap

Quelqu'un peut-il me dire s'il vous plaît comment créer un fichier nommé myimage.png ou MyImage.bmp de cet objet Bitmap

String base64Code = dataInputStream.readUTF(); 
byte[] decodedString = null; 
decodedString = Base64.decode(base64Code); 
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length); 

Répondre

5

Essayez le code ci-dessous pour enregistrer l'image sous format PNG

try { 
    FileOutputStream out = new FileOutputStream(filename); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
out.flush(); 
out.close(); 

Ici, 100 est la qualité à enregistrer dans la compression. Vous pouvez passer n'importe quoi entre 0 et 100. Abaissez le chiffre, mauvaise qualité avec une taille réduite.

Remarque

Vous devez prendre l'autorisation dans le fichier Android Manifest.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

Modifier

Pour enregistrer votre image au format .BMP , Android Bitmap Util vous aidera. Il a une implémentation très simple.

String sdcardBmpPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/sample_text.bmp"; 
Bitmap testBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sample_text); 
AndroidBmpUtil bmpUtil = new AndroidBmpUtil(); 
boolean isSaveResult = bmpUtil.save(testBitmap, sdcardBmpPath); 
+0

quand j'ai essayé ce ------------- FileOutputStream out = new FileOutputStream ("Image.png"); Bitmappress (bitmap.CompressFormat.PNG, 90, out); ----------------------- Je reçois ------------------- ---------- java.io.FileNotFoundException: /Image.png: ouvrir a échoué: EROFS (système de fichiers en lecture seule) –

+0

@ user2318483, vous pouvez utiliser comme suit. String fileName = Environment.getExternalStorageDirectory(). GetAbsolutePath() + Fichier.separator + "votre_fichier.png"; –

+1

cela fonctionne merci monsieur ....... –

0
try { 
    FileOutputStream out = new FileOutputStream(filename); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 
    out.close(); 
} 
Questions connexes