我们有一个 IOS 应用程序,它将图像发送到 asp.net Web api 应用程序。因此,我们将图像转换为 Base64,然后将其作为字符串发送到 Web 服务。
问题是图像的大小很大,所以转换为 base64 需要很多时间,结果字符串的大小大于初始图像的大小。
我需要知道:
- 如果存在另一种更好的方法,而不是转换为 Base64,可以在调用网络服务之前转换图像
我使用
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部分中的字节数组,然后调用网络服务?或者将诸如 compressedStream
或 GZipStream
之类的对象公开为服务参数?
谢谢,
最佳答案
可以将图像转换为字节数组,这是一个涉及到的 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# 来构建您的应用程序,那么它会更容易,您可以找到执行这两项操作的代码示例。
关于c# - 将图像从 Ios 应用程序发送到 Web API 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41013896/