GIF 编辑
2023-10-22 本文已影响0人
tom__zhu
Input -> Edit -> Output
Input
gif 编辑需要对每帧操作,input 不能是 UIImage 实例,而是需要通过 Data 转为每一帧对应的 UIImage
在资源列表页面选中需要编辑的 Gif 图,启动下面的流程
-
PHAssert gif 资源写到 tmp 目录
gif 文件写到 tem 目录
Edit
编辑 GIF 文件,流程如下
- 遍历 GIF 的序列帧中 UIImage 实例
- 对每一帧的 UIImage 实例做编辑处理,并得到新的 UIImage 实例
- 把新的 UIImage 转为 NSData
- 压缩 NSData
- 压缩后的 NSData 转为 UIImage 实例,并保存在数组中
- 把数组中所有 UIImage 实例转为 GIF 文件
-
把 处理后的 GIF 文件回调给业务
image.png
把数组中 UIImage 实例转为 GIF 步骤如下
- 每一帧的 UIImage 实例通过 CoreGraph 接口 CGImageDestinationAddImage 写到沙盒路径
-
通过 CGImageDestinationFinalize 判断图片是否写成功,写成功后,需要通过 NSData 转为 UIImage,得到对应的 GIF
2. CGImage 转UIImage
-
Edit
编辑 gif