Convert Gif image to NSData

wjh picture wjh · May 25, 2013 · Viewed 10.7k times · Source

I have a gif image in my photo album. When I use the UIImagePickerController to select that image, I need to convert the image to NSData for storing.

Earlier, I used

NSData *thumbData = UIImageJPEGRepresentation(thumbnail, 0.5);

but it will not work with gif images. thumbData will be nil.

  1. How can I get NSData from the gif image?

  2. How can I know that it is a gif image that needs special handing?

Answer

sangony picture sangony · May 25, 2013

The key here is to save the GIF file or URL download directly into a NSData instead of making it a UIImage. Bypassing UIImage will let the GIF file keep the animation.

Here is some code to convert a GIF file into NSData:

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

NSData *gifData = [NSData dataWithContentsOfFile: filePath];

But in all honesty, you should really consider not using GIF at all.