1

UIImageView を持つビューがあります。jpg または png 画像形式でロードされました。jpg 画像版のデータサイズは 100k です。次に、NSKeyedArchiver を使用してビューをファイルに保存しました。ファイルのサイズは約 3MB になっています。画像の png バージョンを使用した場合、アーカイブ ファイルはまだ約 3MB です。

次に、zlib を使用してアーカイブ ファイルを圧縮しました。でもあまり効果はないようです。

100kエリアにできるだけ近づけるためにできることはありますか?

ところで:UIWebViewを使用して画像をロードした場合、jpgバージョンの画像を使用すると、アーカイブされたファイルが元のjpgに非常に近くなります。

編集:マットの答えは私にアイデアを与えたので、これが私がやったことでした:

注:私はすでにUIImageViewのサブクラスを使用していました

  1. NSData画像を保持する iVar を作成する
  2. encodeWithCoder呼び出す前に、[super encodeWithCoder...]設定しself.image = nilます。self.image1で保存した画像データに戻しますNSData
  3. 必ずNSDataiVar を 1 にエンコードしてください。

で、 iVar をinitWithCoder使用してイメージを復元します。NSData

4

1 に答える 1