2016-12-07 109 views
0

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

问题是图像的大小很大,因此转换到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

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

最大的问题却是这样的:你实际需要的形象,大?你需要考虑一旦你有多个用户这样做,服务会变得缓慢,并且很可能会停下来,这会让你的应用程序很难/很慢使用。

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

这里是另一个SO帖子里面触及这一点:如果你正在使用xamarin和C#来构建应用程序What's the easiest way to resize/optimize an image size with the iPhone SDK?

当然然后那就更简单了,你可以找到做这两个事情的代码示例。

相关问题