iOS生成gif图片
前言
记录一下最新遇到的需求,就是在播放的过程中生成gif表情包,这里我选择了iOS系统库CGImageDestinationRef
使用教程
创建CGImageDestinationRef
_url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)_exportURL, kCFURLPOSIXPathStyle, false);
// 300表示预计需要插入的图片,这个值如果小于预设值,CGImageDestinationRef会缓存对应的图片到cache里面,导致存在内存问题。因此,这个值最好设置的比你想插入的值更大一点。
_destination = CGImageDestinationCreateWithURL(_url, kUTTypeGIF, 300, NULL);
配置CGImageDestinationRef
NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithCapacity:2];
[dict setObject:[NSNumber numberWithBool:YES] forKey:(NSString*)kCGImagePropertyGIFHasGlobalColorMap];
[dict setObject:[NSNumber numberWithInt:8] forKey:(NSString*)kCGImagePropertyDepth];
// loop表示循环的次数,0表示无限循环,其他表示循环的次数
[dict setObject:[NSNumber numberWithInt:_loop] forKey:(NSString*)kCGImagePropertyGIFLoopCount];NSDictionary* property = [NSDictionary dictionaryWithObject:dict forKey:(NSString *)kCGImagePropertyGIFDictionary];
CGImageDestinationSetProperties(_destination, (__bridge CFDictionaryRef)property);
添加图片到CGImageDestinationRef
// 指示每一帧之间的duration,单位为秒。
NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:0.1],(NSString *)kCGImagePropertyGIFDelayTime, nil];
NSDictionary *properties = [NSDictionary dictionaryWithObject:dict forKey:(NSString *)kCGImagePropertyGIFDictionary];CGImageDestinationAddImage(_destination, cgimage, (__bridge CFDictionaryRef)properties);
结束生成gif图片
CGImageDestinationFinalize(_destination);
iOS生成gif图片相关推荐
- iOS 生成条纹图片
// 1.创建一行背景图片CGFloat rowW = self.view.frame.size.width;CGFloat rowH = 30;UIGraphicsBeginImageContext ...
- iOS二维码生成中间带图片Logo
iOS二维码生成中间带图片效果图: ViewController.h 1 #import <UIKit/UIKit.h> 2 @interface ViewController : UIV ...
- iOS 生成二维码/条形码
级别:★★☆☆☆ 标签:「iOS CIFilter」「CIQRCodeGenerator」「CICode128BarcodeGenerator」「二维码加logo」 作者: Xs·H 审校: QiSh ...
- android类似于ios剪切框图片,不必羡慕 iOS,Android 上也有这些好用的截图处理工具...
原标题:不必羡慕 iOS,Android 上也有这些好用的截图处理工具 在截图编辑和 GIF 制作方面,iOS 平台有诸多独占且优秀的应用可以使用,例如利用 Picsew 截图拼接.Annotable ...
- 【愚公系列】2022年08月 微信小程序-view生成分享图片
文章目录 前言 一.view生成分享图片 1.组件的封装 2.组件的使用 3.效果 4.第三方工具的使用 前言 微信小程序并不支持view直接转绘到画布上,想要实现海报功能必须通过以下4个步骤: 通过 ...
- iOS 任意切割图片
iOS 任意切割图片 自定义圆形 通过一个镂空的模板选中想要切割的部分, 然后生成图片 必要的属性, 和蒙版 以及要切割的图片. (胖迪) var imageview = UIImageView.i ...
- php图片涂鸦,IOS_详解iOS App中图片的线段涂鸦功能的添加方法,接下来我们要讲图片的涂鸦, - phpStudy...
详解iOS App中图片的线段涂鸦功能的添加方法 接下来我们要讲图片的涂鸦,我们分开一点一点拓展,先给图片上划线 创建项目 起名testAddLine 接下来我们在默认生成的ViewControlle ...
- iOS之实现图片裁剪的几种方式
iOS之实现图片裁剪的几种方式 1.使用CGImageCreateWithImageInRect函数 CGImageCreateWithImageInRect函数是属于Core Graphics Fr ...
- 转: 通过Servlet生成验证码图片
孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)-- 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...
最新文章
- 炼成优秀 SaaS 产品的三个要素?听腾讯、神策、网易的专家讲讲|PCon
- 独家 | 如何从头开始为MNIST手写数字分类建立卷积神经网络(附代码)
- leetcode算法第8题
- 使用R语言进行中文分词
- 为什么不可以使用哈曼顿距离_哈曼卡顿音乐琉璃1代2代评测,不但抓耳,还让你视线也难离开...
- 4.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况、存在的问题及解决的方案。(尤心心)...
- Spring开发包介绍
- JVM:我就想知道我是怎么没的
- Nginx环境搭建Discuz论坛
- FFMPEG类库打开流媒体的方法(需要传参数的时候)
- 32位汇编语言helloworld_编程语言发展70年,50种不同语言输出Hello World,你知多少?...
- BPF类型格式BTF
- 卡尔曼滤波算法详细推导
- 1317_使用pyserial通过python读取串口数据显示的同时记录log文件
- C语言方波转换正弦波,方波转换成正弦波电路
- 如何修改linux启动项目路径,Jetty配置虚拟目录,实现把web项目发布到自定义目录,指定指定上下文访问;jetty编码修改;Jetty加入Linux service实现开机自启动...
- php如何获取百度快照,php代码获取 百度收录和百度快照时间
- 基金销售:基金转换与超级转换
- UI设计--蓝湖切图
- 485集线器在总线型数据采集系统的应用
热门文章
- Opencv remap函数
- Java培训学习之分词工具之HanLP介绍
- 大数据 排错日记0004——Unable to check if JNs are ready for formatting
- 在循环双链表的P所指的结点之前插入S所指的结点操作是
- 外卖联盟高级接口 - 美团联盟接口 美团外卖CPS+CPA推广活动推广API接口
- 微信领取淘宝内部优惠券教程免费
- 如何实现发票信息的自动录入与查验?
- 【技术科普】支持H.265视频网页Web播放的EasyPlayer.js设计理念与功能计划
- 【HR面试100问】一篇文章根治各种HR面的套路问题,文章给出参考答案~持续更新
- c# mailgun 发送邮件测试