C# 如何减少Base64大小?
我是web服务开发新手。我正在开发一个web服务,我需要使用一个Android应用程序调用的web服务在服务器上上传图像 我的问题是,当用户从Android设备中选择图像并单击上载按钮时,它会使用Base64类文件生成字符串。其长度超过3000个字符C# 如何减少Base64大小?,c#,android,web-services,wcf,image-uploading,C#,Android,Web Services,Wcf,Image Uploading,我是web服务开发新手。我正在开发一个web服务,我需要使用一个Android应用程序调用的web服务在服务器上上传图像 我的问题是,当用户从Android设备中选择图像并单击上载按钮时,它会使用Base64类文件生成字符串。其长度超过3000个字符 因此,我需要减少使用Base64为图像生成的字符串的大小。根据定义,Base-64是一种固定大小的表示形式;n字节二进制文件将始终为m个字符,以64为基数。您最多只能删除最后一个块的填充,这将最多为您节省3个字符 如果您希望有效负载更短,您可以:
因此,我需要减少使用Base64为图像生成的字符串的大小。根据定义,Base-64是一种固定大小的表示形式;n字节二进制文件将始终为m个字符,以64为基数。您最多只能删除最后一个块的填充,这将最多为您节省3个字符 如果您希望有效负载更短,您可以:
- 使用更高的基数(尽管您需要手动编写编码/解码,并且仍然只能达到大约base-90或其他值,因此不会大幅减小大小)
- 使用纯二进制post正文,而不是以任何内容为基础(这实际上是base-256)
- 数据较少
- 通过拥有更小的图像
- 或者使用压缩(注意:许多图像格式已经被压缩,所以这通常没有帮助)
- 使用多个请求
但是,如果是捕获的图像,更改JPEG压缩(或原始分辨率)的参数将被证明更有用,由于压缩时使用的是类似JPEG的数据,因此base-64可能非常低。您需要先减小实际图像大小,才能减小base64大小。您必须先压缩图像,然后再将其转换为base64。您可以尝试压缩流,但不能保证它会对您有所帮助,因为如果图像已经具有压缩格式,则无需执行任何操作。如果图像文件太大,则创建多部分实体HTTP mime web服务。@JigneshJain我已经压缩了图像&使用HTTP mine too可以接受下面的答案吗,VVB?