如何减少Base64大小?

VVB*_*VVB 6 c# wcf android web-services image-uploading

我是 Web 服务开发的新手。我正在开发一个 Web 服务,我需要使用将从 Android 应用程序调用的 Web 服务在服务器上上传图像。

我的问题是,当用户从 Android 设备选择图像并点击上传按钮时,它会使用 Base64 类文件生成字符串。并且其长度超过3000个字符。

所以,我需要减少使用 Base64 生成的字符串的大小作为图像。

Mar*_*ell 5

根据定义,Base-64 是固定大小的表示;n 字节二进制将始终是 m 个字符 base-64。您最多可以删除最后一个块的填充,这最多可以为您节省 3 个字符。

如果您希望有效载荷更短,您可以:

  • 使用更高的基数(尽管您需要手动编写编码/解码,并且您仍然只能达到大约 base-90 或其他值,因此您不会大幅减小大小)
  • 使用纯二进制帖子正文而不是 base-anything(这实际上是 base-256)
  • 数据较少
    • 通过使用较小的图像
    • 或使用压缩(注意:许多图像格式已经被压缩,所以这通常无济于事)
  • 使用多个请求