2017-03-11 2 views
-1

Je vais convertir le fichier en base64 donc j'envoie un fichier et le convertir en bitmap et quand je veux le compresser, il me donne l'erreur zéro point d'exception c'est ce que tout que j'ai fait.obtenir l'exception null point lors de la conversion de fichier en Base64

public static String getFileToByte(String path){ 
     Bitmap bm = null; 
     ByteArrayOutputStream baos = null; 
     byte[] b = null; 
     String encodeString = null; 
     try{ 
      bm = BitmapFactory.decodeFile(path); 
      baos = new ByteArrayOutputStream(); 
      bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
      b = baos.toByteArray(); 
      encodeString = Base64.encodeToString(b, Base64.DEFAULT); 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
     return encodeString; 
    } 

j'ai eu erreur sur cette erreur:

bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); 

et passer:

getFileToByte(image.getAbsolutePath()); 
+0

'getFileToByte'. Cela ressemble à un mauvais nom de fonction étant donné que vous convertissez en une chaîne base64. – greenapps

Répondre

0

Ne pas convertir le fichier dans un bitmap en premier. Votre bitmap est nulle car il n'y a pas assez de mémoire pour construire un bitmap pour ce fichier d'image avec une grande résolution. À la place, vous devriez directement coder en base64 les octets du fichier.

Ensuite, votre code est identique pour tous les types de fichiers.