如何通过网络传输小型UIImages,质量损失最小?

时间:2012-11-14 03:27:02

标签: ios uiimage

我需要通过互联网发送UIImage,但到目前为止我遇到了一些问题。

我目前使用UIImage,使其成为第16个维度,将其转换为NSData,然后使用NSData + base64创建NSString。然后,我将此作为JSON请求的一部分传输到服务器。

大部分时间,这都很完美。

但是,文件大小很大。在蜂窝连接上,图像可能需要约10秒才能加载。

如何通过网络传输UIImage,以便它很小并保持质量?即使我将它设为前一个像素数的16,照片也可以是1.5MB。我想得到大约300KB。

使用zip或gzip压缩它似乎只会导致可忽略不计(<.1MB)的节省。

谢谢, 罗伯特

2 个答案:

答案 0 :(得分:2)

我建议将其存储为带有一些压缩的JPEG或PNG,使用类似

的方法
        UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality)

然后发布你从中得到的NSData对象。您应该能够通过使用compressionQuality变量找到一个好的ssize / quality权衡。

答案 1 :(得分:1)

您没有说明如何将图像转换为数据。你提到“照片”。如果您的图片是照片,则应使用UIImageJPEGRepresentation,而不是UIImagePNGRepresentation。您必须使用compressionQuality参数来查找平衡数据大小和图像质量的压缩级别。

相关问题