从Ios应用程序发送图像到web api服务
问题描述:
我们有一个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服务?或者像compressedStream
或GZipStream
这样的对象暴露为服务参数?
感谢,
答
,可以将图像转换为字节数组,这里是一个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?
当然然后那就更简单了,你可以找到做这两个事情的代码示例。