2

在 iPhone 应用程序中,我使用标准 HTTP 请求从服务器加载 JPG 图像。[UIImage imageWithData:responseData]数据以 NSData 的形式返回,我可以使用该函数将其转换为 UIImage 。我的问题是,我可以将图像的 UIImage 表示转换回它源自的相同 NSData 吗?我知道这个UIImageJPEGRepresentation()函数,但我尝试了 1 的compressionQuality,这给了我与原始 NSData 不同的东西。

4

2 回答 2

3

我认为(实际上是猜测)您的问题可能是因为 UIImage 内部未以 JPEG 格式存储。由于 JPEG 压缩的工作方式,转换回 JPEG 不太可能为您提供完全相同的数据。有什么理由不能保留原始的 NSData 吗?

于 2011-06-27T16:59:18.693 回答
2

您应该使用 UIImagePNGRepresentation(),并将文件作为 PNG 发送到设备。PNG 在设备上加载和保存的效率要高得多。这是将字节数组 (NSData) 转换为图像的标准方法。

如果你被 JPEG 数据卡住了, UIImageJPEGRepresentation() 是将它返回到 NSData 对象的正确方法。它可能不完全相同,这取决于 Apple 如何实现该方法,它可以更新一些数据,同时在技术上仍然是相同的图像(将呈现相同的图像)。

于 2011-06-27T16:37:50.280 回答