将图像从Ios应用程序发送到web api服务

时间:2016-12-07 09:35:25

标签: c# ios json rest asp.net-web-api

我们有一个IOS应用程序,它将图像发送到asp.net web api应用程序。因此,我们将图像转换为Base64,然后将其作为字符串发送到Web服务。

问题是图像的大小很大,因此转换为base64需要花费大量时间,结果字符串的大小要比初始图像的大小大。

我需要知道:

  • 如果存在另一种更好的方式,而不是转换为Base64,则在调用Web服务之前转换图像
  • 我使用Gzip来压缩/解压缩一个字节数组,如下所示:

     static byte[] Compress(byte[] data)
        {
            using (var compressedStream = new MemoryStream())
            using (var zipStream = new GZipStream(compressedStream,  CompressionMode.Compress))
            {
                zipStream.Write(data, 0, data.Length);
                zipStream.Close();
                return compressedStream.ToArray();
            }
        }
    

是否可以将图像转换为 IOS 部分中的字节数组,然后调用Web服务?或者将compressedStreamGZipStream之类的对象公开为服务参数?

谢谢,

1 个答案:

答案 0 :(得分:1)

可以将图像转换为字节数组,这里是一个SO答案,它接触到:how to convert byte array to image in ios

然而,最大的问题是:你真的需要那么大的形象吗?一旦有多个用户执行此操作,您需要考虑服务将变慢,并且很可能会停止使您的应用程序难以/慢使用。

您可能需要考虑在发送之前缩小图像。您可以减小尺寸,降低质量,然后将其缩小,然后通过电线发送结果。

以下是另一篇SO帖子:What's the easiest way to resize/optimize an image size with the iPhone SDK?

当然,如果您使用xamarin和c#来构建应用程序,那么它就更容易了,您可以找到执行这两项操作的代码示例。