Получить исключение нулевой точки при преобразовании файла в 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 кодировать байты файла.

Тогда ваш код одинаков для всех типов файлов.

Другие вопросы по тегам