Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何减少Base64大小?_C#_Android_Web Services_Wcf_Image Uploading - Fatal编程技术网

C# 如何减少Base64大小?

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个字符 如果您希望有效负载更短,您可以:

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

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


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

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

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

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

一般来说,在不丢失所需信息的情况下减少数据大小。Android可能是一个很好的起点,但您仍然需要跨线编码


但是,如果是捕获的图像,更改JPEG压缩(或原始分辨率)的参数将被证明更有用,由于压缩时使用的是类似JPEG的数据,因此base-64可能非常低。

您需要先减小实际图像大小,才能减小base64大小。

您必须先压缩图像,然后再将其转换为base64。您可以尝试压缩流,但不能保证它会对您有所帮助,因为如果图像已经具有压缩格式,则无需执行任何操作。如果图像文件太大,则创建多部分实体HTTP mime web服务。@JigneshJain我已经压缩了图像&使用HTTP mine too可以接受下面的答案吗,VVB?