У меня есть представление с UIImageView. Он был загружен в формате jpg или png. Говорит, что версия изображения jpg имеет размер данных 100 КБ. Затем я использовал NSKeyedArchiver, чтобы сохранить свое представление в файл. Размер файла становится около 3 МБ. Если бы я использовал версию изображения png, архивный файл по-прежнему составлял около 3 МБ.
Затем я использовал zlib для сжатия заархивированного файла. Но, кажется, это не имеет большого эффекта.
Что-нибудь, что я могу сделать, чтобы вернуть его, чтобы максимально закрыть зону 100k?
Кстати: если я использовал UIWebView для загрузки изображения, то с версией изображения в формате jpg я получу архивный файл, очень близкий к исходному jpg.
РЕДАКТИРОВАТЬ: ответ Мэтта дал мне идею, и вот что я в итоге сделал:
Примечание: я еще не использовал подкласс UIImageView
- Создайте iVar для хранения
NSData
для изображения - в
encodeWithCoder
перед вызовом[super encodeWithCoder...]
установитьself.image = nil
; и установитеself.image
обратно в данные изображения, используя сохраненныеNSData
в 1. - обязательно закодируйте
NSData
iVar в 1.
В initWithCoder
, используя NSData
iVar для восстановления изображения.
UIImage
может понимать только растровое изображение, поэтому вы будете сохранять его. Как говорит Мэтт, зачем вам вообще это нужно? - person borrrden   schedule 13.05.2013