NSCoding UIImage到磁盘会占用大量磁盘空间并且写入速度很慢

时间:2013-12-05 12:06:19

标签: ios objective-c uiimage nskeyedarchiver nscoding

我使用NSKeyedArchiver将UIImages序列化到磁盘。

UIImage符合NSCoding,因此可以正确序列化和反序列化,但生成的文件非常大,从而导致性能问题。

我通过将标准iPhone5相机拍摄的ALAssetsLibrary中的图像加载到UIImage,然后将图像序列化到磁盘来测试这个

UIImage *testImage = [asset defaultRepresentation]....
[NSKeyedArchiver archive:testImage ....]

文件大约为15MB,写入/加载时间超过1秒。

然后我尝试通过转换为NSData序列化UIImage:

NSData *imageData = UIImageJPEGRepresentation(UIImage *image, 0....1); // tried most compression all the way to least compression
[NSKeyedArchiver archive:imageData....]

生成的文件幅度更小(读取和写入速度更快)

保存图像的建议方法是什么?来自ALAssetsLibrary的底层图像是否在磁盘上占用15MB来存储图像?

我应该使用PNG表示吗?

0 个答案:

没有答案