首先,介绍一下我们这边文章主要是讲解iOS如何代码分解Gif图片,然后保存到我们手机。

Gift分解主要分为四个步骤:

一、拿到我们的git图片数据(下面直接上代码)

    //1、拿到gif数据NSString *gitPathSource = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"gif"];NSData *data = [NSData dataWithContentsOfFile:gitPathSource];CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)data, NULL);

注意:需要添加头文件:

#import <ImageIO/ImageIO.h>//IO input output输入输出

#import <MobileCoreServices/MobileCoreServices.h>

二、将gif分解一帧帧

    //2、将gif分解一帧帧size_t count = CGImageSourceGetCount(source);NSLog(@"count = %d",count);//打印获取到的git图片张数

三、将单帧数据转化为UIImage

 NSMutableArray *tmpArray = [[NSMutableArray alloc] init];for (size_t i = 0; i < count; i++) {CGImageRef imageRef = CGImageSourceCreateImageAtIndex(source, i, NULL);//3、将单帧数据转化为UIImageUIImage *image = [UIImage imageWithCGImage:imageRef scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];[tmpArray addObject:image];CGImageRelease(imageRef);}CFRelease(source);

四、单帧图片保存起来

    //4、单帧图片保存起来int i = 0;for (UIImage *image in tmpArray) {NSData *data = UIImagePNGRepresentation(image);NSString *gifPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;NSString *pathNum = [gifPath stringByAppendingFormat:@"%@", [NSString stringWithFormat:@"%d.png",i]];i++;[data writeToFile:pathNum atomically:NO];//将图片写入路径}

至此,一张完整的gif图就已经分解完成!!

Gift图片的动画展示:

首先我们得在项目中找到对应需要展示的单张图片,然后,,,,上代码

//Gif动画展示
- (void)showGifAnimaton{NSMutableArray *imageTmp = [[NSMutableArray alloc] init];UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 130, 363, 235)];[self.view addSubview:imageView];for (int i = 0; i < 22; i++) {UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"Documents%d.png",i]];//获取图片[imageTmp addObject:image];}[imageView setAnimationImages:imageTmp];//设置图片数组[imageView setAnimationRepeatCount:10];//动画重复次数[imageView setAnimationDuration:3];//一组动画时间[imageView startAnimating];//开始动画
}

iOS Gif分解与展示相关推荐

  1. IOS视频分解图片、图片合成视频

    在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析.  (1)视频分解图片  这里视频分解图片使用的是AVAsse ...

  2. iOS 类似excel的展示

    找了2篇文章  http://www.opendigg.com/p/excelview http://www.open-open.com/lib/view/open1452176613511.html ...

  3. ios html 字体加粗,iOS中用富文本展示Html内容的问题【不能加粗,图片展示等】...

    图片展示需要添加代码: htmlString = [NSString stringWithFormat:@" %@", imageWidth, htmlString];` html ...

  4. mac下为iOS app制作gif展示动画图

    简介 一般来说我们做一个demo,希望能够把效果展示给别人看,但是静态的截图并不能展示一些动画效果,所以一般来说制作成gif动图会利于展示,本文就讲述制作gif的全过程.这个过程中我们需要用到两个软件 ...

  5. 【iOS】通讯录分组方式展示数据

    本例子是将后台返回的医生列表(包含姓名和电话,demo从plist文件读取),按拼音进行分组显示(A-Z),最终效果如下图: 一.创建Doctor医生类: Doctor类属性包括姓名.电话以及姓名第一 ...

  6. html模仿原生ios通讯录制作国家展示页(手机端)

    html内容 <div id="item-container"><ul></ul> </div><script src=&qu ...

  7. ios 九宫格图片的展示实现

    今天分享的是多图添加的代码,像微博和微信那些9图显示有一个问题就是每个微博或朋友圈的图片显示数量是不定的,这样我们就不能一开始就写好imageView的位置和数量,要先知道有多少个图片,再根据图片的数 ...

  8. iOS端实现React Native差异化增量更新

    作为一名iOS原生开发工程师,通过一个礼拜的面试之后发现,原来并不想学的react-native真的是火的一塌糊涂,坐标:杭州,很多公司招聘iOS开发除了原来的OC和Swift,多了一门新语言:rea ...

  9. python多项分式求和计算_python实现利用留数定理分解分式多项式

    编写之初 由于利用留数定理分解分式多项式的计算麻烦,所以决定用python做一个利用留数定理分解分式多项式程序,实现只要输入多项式就可以得到各种中间参数和最终拆分结果的目的.从本程序可以得到:分解后每 ...

  10. 剪切粘贴时总是上次的内容_如何关闭 iOS 14 的粘贴通知

    饿了么 6-20 元红包 快快领取 苹果在 iOS 14 上推出多项关于隐私保护和提醒的功能,其中就包括 App 读取粘贴板提醒,比如下面这样: 很多朋友觉得这个提醒很多余,希望能够想办法去掉.理论上 ...

最新文章

  1. 使用sqlite保存数据返回主键
  2. Nginx小功能合集
  3. css中颜色的表示方法
  4. 【码农本色】用数据解读我的2014
  5. 基层数字化治理困境如何破局?
  6. POJ - 2018 Best Cow Fences(二分+最长连续子段和)
  7. 10行代码AC——7-2 说反话-加强版 (20 分)——解题报告
  8. 答网友问:如果用 OData 就能直接和 SAP 系统互通,BTP 和 CPI 这样的平台意义在哪里呢?
  9. opencv rect画旋转矩形_在opencv c中绘制旋转的矩形
  10. 清华大学-美团数字生活联合研究院成立
  11. ManicTime软件破解
  12. 采样次数不同平均值不一样_认知的不同,才有不一样的人生
  13. 猎隼涉密计算机安全,[原创]如何干掉《“猎隼”涉密计算机上网监察取证系统》...
  14. Linux nohup命令详解
  15. python函数调用的五种方式
  16. CPA、CPS、CPC、CPM推广是什么意思?
  17. 蛋白质ph稳定性计算机模拟,基于计算机模拟、自组装和力谱技术的蛋白质分子间相互作用研究...
  18. Firefox的下载处理器:FlashGot v1.0 Final颁发
  19. Classic界面chatter中的子选项卡配置
  20. 2017最新安卓版UI设计规范篇

热门文章

  1. 佳能最新版DPP免CD安装
  2. Photoshop如何自定义形状
  3. 台达plc自由口通讯_台达PLC串行通讯应用原理
  4. 程序员职业规划(转)
  5. 风力摆控制系统赛题分析
  6. C语言 Mkl 矩阵乘法,MKL库矩阵乘法
  7. SpringMVC工作原理及其流程
  8. 配置DTcms伪静态功能图文教程
  9. sublime 配置快捷键
  10. sublime快捷键(mac版)一览