当我将图像文件转换为base64图像大小增加3次时,任何人都可以解释吗?



当我将图像文件转换为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);

您没有编码原始JPG文件。如果您这样做了Base64编码的字符串将比原始文件多30%。

取而代之的是,将JPG加载到位图中,然后让位图将其压缩到内存中的其他JPG文件。第二个已经比原始的大得多。您可以轻松检查一下。

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

bitmap.compress(bitmap.compressformat.jpeg,100,stream(;

和str = base64.encodeToString(image,base64.no_wrap(;

是您必须更改...的行100在这里表示您可以根据要求更改的压缩比。通常,它可能从0-100范围内变化。如果要将数据包装到默认情况下提供的任何编码格式,则可以相应地更改base64.no_wrap。只需写基本64即可。然后按Ctrl 空间以查看哪种选项对您更有效。

相关内容

最新更新