2017-03-11 18 views
-1

ファイルをbase64に変換してビットマップに変換するので、圧縮したいときにエラーが発生した場合はヌルポイント例外が発生します これはすべてです私はそれをしました。ファイルを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; 
    } 

私は、このエラーのエラーました:

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

をして渡します

getFileToByte(image.getAbsolutePath()); 
+0

'getFileToByte'。これは、あなたがbase64文字列に変換すると考えると、間違った関数名のように見えます。 – greenapps

答えて

0

は、最初のビットマップにファイルを変換しないでください。解像度が高いイメージファイルのビットマップを構築するのに十分なメモリがないため、ビットマップがnullです。

代わりに、ファイルのバイトを直接base64エンコードする必要があります。

あなたのコードはすべての種類のファイルでも同じです。

関連する問題