GIF图片展示原理:
将GIF图片转换成对应的图片源,获取到每一帧的原图,将原图数组赋值给UIImageView,进行展示
NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"scrollToRight" withExtension:@"gif"];
CGImageSourceRef gifSource = CGImageSourceCreateWithURL((CFURLRef) fileUrl, NULL); //将GIF图片转换成对应的图片源
size_t frameCout = CGImageSourceGetCount(gifSource); // 获取其中图片源个数,即由多少帧图片组成
NSMutableArray *frames = [[NSMutableArray alloc] init]; // 定义数组存储拆分出来的图片
for (size_t i = 0; i < frameCout; i++) {
CGImageRef imageRef = CGImageSourceCreateImageAtIndex(gifSource, i, NULL); // 从GIF图片中取出源图片
UIImage *imageName = [UIImage imageWithCGImage:imageRef]; // 将图片源转换成UIimageView能使用的图片源
[frames addObject:imageName]; // 将图片加入数组中
CGImageRelease(imageRef);
}
UIImageView *gifView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, PADRP_RateForWidth(236), PADRP_RateForWidth(178))];
gifView.animationImages = frames;
gifView.animationDuration = 1; // 每次动画时长
[gifView startAnimating]; // 开启动画
网友评论