//加载gif 02 03 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"bai3" ofType:@"gif"]; 04 05 NSData *data = [NSData dataWithContentsOfFile:filePath]; 06 07 CGImageSourceRef gif = CGImageSourceCreateWithData((CFDataRef)data, nil); 08 09 //获取gif的各种属性 10 11 CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,0,NULL)); 12 13 NSLog(@"_______%@",gifprops); 14 15 16 NSInteger count =CGImageSourceGetCount(gif); 17 18 NSLog(@"________%d",count); 19 20 21 CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary); 22 23 CFDictionaryRef delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime); 24 25 NSLog(@"_______%@",delay); 26 27 28 //[gifDic objectForKey:(NSString *)kCGImagePropertyGIFDelayTime]; 29 30 // NSNumber * w = CFDictionaryGetValue(gifprops, @"PixelWidth"); 31 32 // NSNumber * h =CFDictionaryGetValue(gifprops, @"PixelHeight"); 33 34 // float totalDuration = delay.doubleValue * count; 35 36 // float pixelWidth = w.intValue; 37 38 // float pixelHeight = h.intValue; 39 40 //将gif解析成UIImage类型对象,并加进images数组中 41 42 43 NSMutableArray *images = [NSMutableArray arrayWithCapacity:count]; 44 45 for(int index=0;index<count;index++) 46 47 { 48 49 CGImageRef ref = CGImageSourceCreateImageAtIndex(gif, index, nil); 50 51 UIImage *img = [UIImage imageWithCGImage:ref]; 52 53 [images addObject:img]; 54 55 CFRelease(ref); 56 57 } 58 59 CFRelease(gifprops); 60 61 CFRelease(gif);