
正文
iOS从gif获取图片数组
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
iOS中,当我们UIImageView实现动画时,如果图片是gif则不会自动播放gif图片,我们可以从gif图片中读取出每一帧的图片,然后组成图片数组,之后再实现使用UIImageView实现动画效果,可以使用下面方法获取图片数组;在使用过程,碰到了有些gif图片不能使用,可能和gif制作方式有关,无法读取每一帧数据
+ (NSArray *)getImageFromGifResource:(NSString *)resource {
NSMutableArray *imageArray = [NSMutableArray array];
// 获取gif url
NSURL *url = [[NSBundle mainBundle] URLForResource:resource withExtension:@"gif"];
// 转换为图片源
CGImageSourceRef gifImageSourceRef = CGImageSourceCreateWithURL((CFURLRef)url, nil);
// 获取图片个数
size_t framesCount = CGImageSourceGetCount(gifImageSourceRef);
for (size_t i=; i<framesCount; i++) {
CGImageRef imageRef = CGImageSourceCreateImageAtIndex(gifImageSourceRef, i, nil);
UIImage *image = [UIImage imageWithCGImage:imageRef];
[imageArray addObject:image];
CFRelease(imageRef);
}
return imageArray;
}







