2017-03-11 62 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

不要將文件先轉換爲位圖。您的位圖爲空,因爲沒有足夠的內存爲具有高分辨率的圖像文件構建位圖。

相反,你應該直接Base64編碼的文件的字節數。

然後你的代碼是對所有類型的文件也一樣。