Получить исключение нулевой точки при преобразовании файла в 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());
1 ответ
Не конвертируйте файл сначала в растровое изображение. Ваше растровое изображение равно нулю, так как недостаточно памяти для создания растрового изображения для этого файла изображения с большим разрешением.
Вместо этого вы должны непосредственно base64 кодировать байты файла.
Тогда ваш код одинаков для всех типов файлов.