iOS开发之初:根据一张gif图,返回其中每一帧的图片数组(ImageView加载gif))

在iOS开发中,当需要使用gif图进行刷新或加载动画时,UIImageView默认不支持加载gif。为此,可以通过将gif图拆分为多个帧的UIImage数组来实现动画效果。本文介绍如何通过ImageIO框架,从gif图中获取UIImage数组,从而在UIImageView中播放动画。详细步骤包括获取gif源数据、生成CGImageRef以及转换为UIImage。这种方法适用于没有美工资源,只能使用单一gif图的情况。
摘要由CSDN通过智能技术生成

在APP开发过程中能用到gif图的地方无非就是刷新和加载动画了(等用到小动画的地方).但是UIImageView是无法直接加载gif图的,ImageView提供了一个加载动画图片数组的方法..那要有很多帧.png/.jpg的图片才行…但是像我这种没有美工的开发,网上只找了一张gif图怎么办….
为数组类别,添加一个类方法–由一张项目中的gif图的名字返回其中很多帧UIImage的数组.

@interface NSArray (CDIExtention)
/** 将一个gif图转换为一帧一帧的图片数组*/
+ (NSArray *)cdi_imagesWithGif:(NSString *)gifNameInBoundle;

导入ImageIO框架
(1) 获取到GIF图的源数据 CGImageSourceRef

CGImageSourceRef gifSource = CGImageSourceCreateWithURL((CFURLRef)fileUrl, NULL);

(2) 由源数据 SourceRef生成一张CGImageRef类型图片

 CGImageRef imageRef = CGImageSourceCreateImageAtIndex(gifSource, i, NULL);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值