转换为 Base64 后图像尺寸增大更多

Abh*_*Ram 1 base64 android

我正在使用Compressor第三方库来压缩捕获的图像大小,其工作正常,现在大小显示为 KB,但是当我将此图像转换为BASE64时,文件大小变为 6MB 或更大大小,显示我的代码如下,有人可以帮我吗?我这样做是为了解决这个问题

代码:

 File file= new Compressor(this).compressToFile(f);
   String base64File  = getBase64StringFile(file);

     // Converting File to Base64.encode String type using Method
    public static String getBase64StringFile(File f) {

        InputStream inputStream = null;
        String encodedFile= "", lastVal;
        try {
            inputStream = new FileInputStream(f.getAbsolutePath());

            byte[] buffer = new byte[10240];//specify the size to allow
            int bytesRead;
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            Base64OutputStream output64 = new Base64OutputStream(output, Base64.DEFAULT);

            while ((bytesRead = inputStream.read(buffer)) != -1) {
                output64.write(buffer, 0, bytesRead);
            }
            output64.close();
            encodedFile =  output.toString();
        }
        catch (FileNotFoundException e1 ) {
            e1.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        lastVal = encodedFile;
        return lastVal;
    }
Run Code Online (Sandbox Code Playgroud)

Mil*_*iya 6

您可以使用其他一些 Compressor 工具(例如 FFMPEG)来解决此问题。

Base64 总是会增加文件大小

Base64 通常用于需要在并非真正为二进制设计的系统中传输的二进制数据。根据您正在做的事情,您甚至可能不需要对其进行编码。根据维基百科,平均而言,当您对文件进行 Base64 编码时,文件预计会增长约 37%,这几乎正是您的数字。