我有UIImageView的視圖。它被加載了JPG或PNG圖像格式。 jpg圖像版本的數據大小爲100k。然後我使用NSKeyedArchiver將我的視圖保存到一個文件中。該文件的大小約爲3MB。如果我使用了圖像的png版本,則存檔文件仍然在3MB左右。壓縮包含帶有加載圖像的UIImageView的NSKeyedArchiver文件
然後我使用zlib壓縮存檔文件。但它似乎沒有太大的影響。
我能做些什麼來讓它恢復到儘可能接近100k的區域?
順便說一句:如果我使用UIWebView加載圖像,然後用jpg版本的圖像,我會得到存檔文件非常接近原始jpg的。
編輯:馬特的回答給了我一個想法,所以這是我落得這樣做:
注:我我arleady使用的UIImageView
- 的一個子類創建伊娃舉行
NSData
爲圖片 - 在
encodeWithCoder
之前致電[super encodeWithCoder...]
,設置self.image = nil
;並在1 - 設置
self.image
回使用保存NSData
的圖像數據確保編碼的NSData
伊娃在1
在initWithCoder
,使用NSData
IVAR恢復圖像。
它是3MB的原因無疑是因爲你正在保存*未壓縮*。不要緊,你的源文件是什麼。 'UIImage'只能理解位圖,所以這就是你將要保存的內容。正如馬特所說,你爲什麼需要這樣做呢? – borrrden 2013-05-13 04:27:02
在這種情況下,我需要使用NSKeyedArchiver。但看到我的編輯。 – user523234 2013-05-13 14:15:02