将GIF图转化为UIImageView可展示的动画数组
如何将gif转化为图片数组,ios开发
//引入头文件 #import <ImageIO/ImageIO.h> - (NSMutableArray *)loadGifArray { NSString *path = [[NSBundle mainBundle] pathForResource:@"pross" ofType:@"gif"]; NSData *data = [NSData dataWithContentsOfFile:path]; //目标数组 NSMutableArray *images = [self praseGIFDataToImageArray:data]; return images; } //gif转化为imageView动画数组 - (NSMutableArray *)praseGIFDataToImageArray:(NSData *)data; { NSMutableArray *frames = [[NSMutableArray alloc] init]; CGImageSourceRef src = CGImageSourceCreateWithData((CFDataRef)data, NULL); CGFloat animationTime = 0.f; if (src) { size_t l = CGImageSourceGetCount(src); frames = [NSMutableArray arrayWithCapacity:l]; for (size_t i = 0; i < l; i++) { CGImageRef img = CGImageSourceCreateImageAtIndex(src, i, NULL); NSDictionary *properties = (NSDictionary *)CFBridgingRelease(CGImageSourceCopyPropertiesAtIndex(src, i, NULL)); NSDictionary *frameProperties = [properties objectForKey:(NSString *)kCGImagePropertyGIFDictionary]; NSNumber *delayTime = [frameProperties objectForKey:(NSString *)kCGImagePropertyGIFUnclampedDelayTime]; animationTime += [delayTime floatValue]; if (img) { [frames addObject:[UIImage imageWithCGImage:img]]; CGImageRelease(img); } } CFRelease(src); } return frames; }
posted on 2015-08-08 14:39 Andy_Capricorn 阅读(331) 评论(1) 编辑 收藏 举报