2011-09-14 2 views
3

У меня есть UIImage, который является файлом GIF.Преобразование UIImage в NSData BUT оставаться в виде файла GIF

Мне нужно заставить его превратить его в объект NSData. Но он должен оставаться GIF, поэтому я не могу использовать UIImageJPEGRepresentation.

Любые идеи?

+1

Вы имеете в виду «Нужно ли оставаться в формате GIF»? – Zigglzworth

+0

Связанный вопрос [Как сохранить GIF на iPhone?] (Http://stackoverflow.com/questions/1851103/how-to-save-a-gif-on-the-iphone) – Sam

ответ

8

Я сталкивался с таким же вопросом вы упоминаете и вот код я использовал для сохранения анимированных GIF для фотографий без потери анимации:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

NSData *data = [NSData dataWithContentsOfURL:[self getCurrentGIFURL]]; 

[library writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {} 

в принципе, если вы сохраните GIF из URL или из файла непосредственно как NSData объект вместо того, чтобы сделать его UIImage, он сохранит анимацию.

+0

Могу ли я предоставить быструю версию? –

2

Вы можете загрузить его в NSData * напрямую, если знаете путь к файлу. Такие, как:

NSData *gifData = [NSData dataWithContentsOfFile:@"myCoolPic.gif"]; 

NSData dataWithContentsOfFile docs

+0

это правда, но это не так это легко печально ... У меня нет доступа к файлу. – Cocoadelica

+3

Итак, как вы получаете изображение? – darksky

+3

А? не имея доступа к файлу, определенно останавливает вас от загрузки его в NSData ... в дополнение к просмотру его, использованию его, манипулированию им и выполнению. Хорошо, что-нибудь с ним. – Zigglzworth

12

После того, как это UIImage, это не GIF больше. Он уже был интерпретирован в основной объект графического изображения, завернутый в UIKit отделки UIImage. У вас нет UIImage, который «является GIF». Возможно, это было однажды, но это время прошло.

Если вы загружаете эту вещь (которую я предполагаю по вашему комментарию «у меня нет доступа к файлу»), вы должны загрузить ее как данные и сохранить ее как данные, а если вы сделаете UIImage, основанный на этих данных, возможно, вам придется хранить данные.

(Это все догадки, хотя, потому что вы дриблинг подробности о вашем вопросе капельны по капельнице. Если вы в большом дыхании можно сказать, что вы хотите достичь, мы, вероятно, можем помочь лучше.)

+0

приземлился здесь на поиски чего-то другого, но это точно отвечает на мой вопрос. спасибо –

Смежные вопросы