GIF 编辑

2023-10-22  本文已影响0人  tom__zhu

Input -> Edit -> Output

Input

gif 编辑需要对每帧操作,input 不能是 UIImage 实例,而是需要通过 Data 转为每一帧对应的 UIImage

在资源列表页面选中需要编辑的 Gif 图,启动下面的流程

  1. PHAssert gif 资源写到 tmp 目录


    gif 文件写到 tem 目录

Edit

编辑 GIF 文件,流程如下

  1. 遍历 GIF 的序列帧中 UIImage 实例
  2. 对每一帧的 UIImage 实例做编辑处理,并得到新的 UIImage 实例
  3. 把新的 UIImage 转为 NSData
  4. 压缩 NSData
  5. 压缩后的 NSData 转为 UIImage 实例,并保存在数组中
  6. 把数组中所有 UIImage 实例转为 GIF 文件
  7. 把 处理后的 GIF 文件回调给业务


    image.png

    把数组中 UIImage 实例转为 GIF 步骤如下

  8. 每一帧的 UIImage 实例通过 CoreGraph 接口 CGImageDestinationAddImage 写到沙盒路径
  9. 通过 CGImageDestinationFinalize 判断图片是否写成功,写成功后,需要通过 NSData 转为 UIImage,得到对应的 GIF


1. PHAsset URL 转 Data
2. CGImage 转UIImage
  1. Edit


    编辑 gif
上一篇下一篇

猜你喜欢

热点阅读