我们有一个IOS应用程序,它将图像发送到asp.net web api应用程序。因此,我们将图像转换为Base64,然后将其作为字符串发送到Web服务。
问题是图像的大小很大,因此转换为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 部分中的字节数组,然后调用Web服务?或者将compressedStream
或GZipStream
之类的对象公开为服务参数?
谢谢,
答案 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#来构建应用程序,那么它就更容易了,您可以找到执行这两项操作的代码示例。