当我将图像文件转换为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);
答案 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文件。第二个已经比原来的要大得多。你可以轻松地检查一下。
所以不要使用中间位图,而是直接编码原始文件的字节。