【问题标题】:Send image from Ios application to web api service将图像从 Ios 应用程序发送到 Web api 服务
【发布时间】:2016-12-07 09:35:24
【问题描述】:

我们有一个 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 服务?或者将compressedStream 或GZipStream 之类的对象公开为服务参数?

谢谢,

【问题讨论】:

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


    【解决方案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# 来构建您的应用程序,那么它会更加容易,您可以找到执行这两项操作的代码示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 2014-04-09
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多