用Java(Android)压缩的base64编码字符串(un)

用Java(Android)压缩的base64编码字符串(un),java,android,compression,base64,byte,Java,Android,Compression,Base64,Byte,我正在开发一个Android应用程序,服务器向应用程序(和viceversa)发送不同的base64编码图像。 是否可以压缩base64字符串?差不多 photo --> base64 encoded string --> compressed string 这样做,我可以或多或少地保存多少数据?而且,如果我能节省一些字节,在Android和Java中进行压缩的最佳方式是什么 在纯Java中,我在这里介绍了Stackoverflow Deflater类(它可以完成这项工作,但我不知

我正在开发一个Android应用程序,服务器向应用程序(和viceversa)发送不同的base64编码图像。 是否可以压缩base64字符串?差不多

photo --> base64 encoded string --> compressed string
这样做,我可以或多或少地保存多少数据?而且,如果我能节省一些字节,在Android和Java中进行压缩的最佳方式是什么


在纯Java中,我在这里介绍了Stackoverflow Deflater类(它可以完成这项工作,但我不知道它允许在数据方面保存多少数据)。

压缩比取决于消息中的冗余。
大多数图像格式已经被压缩,因此没有任何有意义的冗余

将图像转换为base64会将其展开。
压缩从来不是100%有效的,它总是会增加一些开销(对于标题和内容)。
你看到的是原始图像的105%

但是请注意,压缩base64文件毫无意义,因为base64文件的全部意义在于允许将其作为文本发送。
如果压缩它,它将再次成为二进制。
那样的话,最好保持原样

如果需要保留可发送电子邮件的字符串
它需要保持低调。因为原始文件已经压缩,所以无法进一步压缩

备选方案
如果您有一个有损算法(如jpeg),您可以通过将图片展开为位图,然后使用不同的参数将其重新编码回jpeg来缩小图片。
这将导致一些质量损失,但可能是将8MB图片转换为100kB图片的好方法。

然后你可以通过电子邮件发送它

压缩比取决于消息中的冗余。
大多数图像格式已经被压缩,因此没有任何有意义的冗余

将图像转换为base64会将其展开。
压缩从来不是100%有效的,它总是会增加一些开销(对于标题和内容)。
你看到的是原始图像的105%

但是请注意,压缩base64文件毫无意义,因为base64文件的全部意义在于允许将其作为文本发送。
如果压缩它,它将再次成为二进制。
那样的话,最好保持原样

如果需要保留可发送电子邮件的字符串
它需要保持低调。因为原始文件已经压缩,所以无法进一步压缩

备选方案
如果您有一个有损算法(如jpeg),您可以通过将图片展开为位图,然后使用不同的参数将其重新编码回jpeg来缩小图片。
这将导致一些质量损失,但可能是将8MB图片转换为100kB图片的好方法。

然后你可以通过电子邮件发送它

图像几乎总是已经被压缩了。Base64编码将其扩展一点,然后可以通过压缩将其缩小一些。但是我用这种方法你只能得到一个更大的结果,而不是更小的。图像几乎都已经被压缩了。Base64编码将其扩展一点,然后可以通过压缩将其缩小一些。但我认为这样你只能得到更大的结果,而不是更小的结果。