2013-05-25 26 views
7

Mam obraz gif w moim albumie fotograficznym. Kiedy używam UIImagePickerController, aby wybrać ten obraz, muszę przekonwertować obraz na NSData do przechowywania.Konwersja obrazu GIF do NSData

Wcześniej użyłem

NSData *thumbData = UIImageJPEGRepresentation(thumbnail, 0.5); 

ale to nie będzie działać z gif. thumbData będzie zerowe.

  1. Jak mogę NSData z obrazka GIF?

  2. Skąd mogę wiedzieć, że jest to obraz gif, który wymaga specjalnego przekazania?

+0

Czy też użyć UIImagePNGRepresentation (miniatury); ? –

+0

spójrz na to [link] (http://stackoverflow.com/a/6573869). Może ci się przydać. – George

+0

Czy rozwiązałeś swój problem? –

Odpowiedz

1

Kod do orientacyjnej plik .gif może przekształcone w NSData -

NSString *pathForFile = [[NSBundle mainBundle] pathForResource: @"myGif" ofType: @"gif"]; 

NSData *dataOfGif = [NSData dataWithContentsOfFile: pathForFile]; 

NSLog(@"Data: %@", dataOfGif); 
8

Kluczem tutaj jest, aby zapisać plik GIF lub URL do pobrania bezpośrednio do NSData zamiast co czyni go UIImage. Pomijanie UIImage pozwoli plikowi GIF zatrzymać animację.

Oto kod, aby przekonwertować plik GIF do NSData:

NSString *filePath = [[NSBundle mainBundle] pathForResource: @"gifFileName" ofType: @"gif"]; 

NSData *gifData = [NSData dataWithContentsOfFile: filePath]; 

Ale szczerze mówiąc, należy rozważyć naprawdę w ogóle nie używając GIF.