我在从文件中保存一个UIImage时遇到问题,该UIImage是从HTTP请求收到的数据中实现的:文件是巨大的,比HTTP请求返回的数据大的重。
例如,从给定的URL下载图像时,检索的数据长度约为1.2MB。然后我用...来实现我的UIImage。
UIImage *myImage = [UIImage imageWithData:responseData];
...然后将图像保存到磁盘:
NSData *imageData = UIImageJPEGRepresentation(myImage, 1.0);
[imageData writeToFile:filePath atomically:YES];
生成的文件重量约为5MB!
我知道我可以将收到的数据保存到文件中,而不是首先实现UIImage,然后使用UIImageJPEGRepresentation检索其数据,但我很想知道为什么文件大小在使用这种方法时会如此巨大。 / p>
任何提示?
先谢谢,
埃里克。
编辑:
我可以确认将响应数据保存到文件而不是首先实现UIImage解决问题并生成大小与数据大小相同的文件。不过,我想知道为什么从UIImage中保存时尺寸变化如此之大......
答案 0 :(得分:1)
我只能假设您的特定图像的jpeg效率低于原始数据 - 这可能是因为您将质量设置为1.0 - 尝试将质量参数设置为较低的数字(0.7很好恕我直言)并查看文件大小下降:)
萨姆
PS看看这实际上有什么区别会很有趣 - 如果你尝试它也可以在这里发布结果 - 谢谢!