3

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

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

大多数情况下,这非常有效。

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

如何通过网络传输 UIImage,使其体积小并保持质量?即使我把它设为之前像素数的 16 分之一,一张照片也可以是 1.5MB。我想把它弄到 300KB 左右。

使用 zip 或 gzip 压缩它似乎只节省了微不足道的 (<.1MB)。

谢谢,罗伯特

4

2 回答 2

2

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

        UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality)

然后发布您从中获得的 NSData 对象。通过使用compressionQuality 变量,您应该能够找到一个良好的尺寸/质量折衷。

于 2012-11-14T03:37:04.257 回答
1

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

于 2012-11-14T03:38:33.830 回答