我要将文件转换为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 :(得分:0)
请勿先将文件转换为位图。您的位图为空,因为没有足够的内存来为具有高分辨率的图像文件构建位图。
相反,你应该直接base64编码文件的字节。
然后你的代码也适用于所有类型的文件。