当我将图像文件转换为base64大小的图像增加3倍,谁能解释?

时间:2017-04-17 07:23:48

标签: android base64 image-compression

当我将图像文件转换为base64大小的图像增加3倍时,有谁可以解释一下? 理想情况下它应该增加30%到40%。

Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] image = stream1.toByteArray();
str = Base64.encodeToString(image, Base64.NO_WRAP);

2 个答案:

答案 0 :(得分:0)

bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);

和 str = Base64.encodeToString(image,Base64.NO_WRAP);

是您必须更改的行... 100表示​​压缩率,您可以根据需要更改压缩率。一般来说,它可能在0到100之间变化。 如果要将数据包装为默认提供的任何编码格式,可以相应地更改Base64.NO_WRAP。 只需编写Base64。然后按ctrl + Space查看哪个选项更适合您。

答案 1 :(得分:0)

您没有对原始jpg文件进行编码。如果你这样做,base64编码的字符串将比原始文件多30%的字节。

相反,你将jpg加载到Bitmap中,然后让Bitmap将其压缩到内存中的另一个jpg文件。第二个已经比原来的要大得多。你可以轻松地检查一下。

所以不要使用中间位图,而是直接编码原始文件的字节。