我有一个 UIImageView 的视图。它加载了 jpg 或 png 图像格式。说 jpg 图像版本的数据大小为 100k。然后我使用 NSKeyedArchiver 将我的视图保存到文件中。文件的大小约为 3MB。如果我使用图像的 png 版本,存档文件仍然在 3MB 左右。
然后我使用 zlib 压缩归档文件。但它似乎没有太大的作用。
我能做些什么来让它尽可能地关闭 100k 区域?
顺便说一句:如果我使用 UIWebView 加载图像,那么使用 jpg 版本的图像我将获得非常接近原始 jpg 的存档文件。
编辑:马特的回答给了我一个想法,所以这就是我最终做的事情:
注意:我已经使用了 UIImageView 的子类
- 创建一个 iVar 来保存
NSData
图像 - 在
encodeWithCoder
调用之前[super encodeWithCoder...]
,设置self.image = nil
;并使用 1 中保存的设置self.image
回图像数据NSData
。 - 确保将
NSData
iVar 编码为 1。
中initWithCoder
,使用NSData
iVar 恢复图像。