UIImageView を持つビューがあります。jpg または png 画像形式でロードされました。jpg 画像版のデータサイズは 100k です。次に、NSKeyedArchiver を使用してビューをファイルに保存しました。ファイルのサイズは約 3MB になっています。画像の png バージョンを使用した場合、アーカイブ ファイルはまだ約 3MB です。
次に、zlib を使用してアーカイブ ファイルを圧縮しました。でもあまり効果はないようです。
100kエリアにできるだけ近づけるためにできることはありますか?
ところで:UIWebViewを使用して画像をロードした場合、jpgバージョンの画像を使用すると、アーカイブされたファイルが元のjpgに非常に近くなります。
編集:マットの答えは私にアイデアを与えたので、これが私がやったことでした:
注:私はすでにUIImageViewのサブクラスを使用していました
NSData
画像を保持する iVar を作成するencodeWithCoder
呼び出す前に、[super encodeWithCoder...]
設定しself.image = nil
ます。self.image
1で保存した画像データに戻しますNSData
。- 必ず
NSData
iVar を 1 にエンコードしてください。
で、 iVar をinitWithCoder
使用してイメージを復元します。NSData