iOS GPUImage研究五:短视频拍摄(滤镜、文件写入)

希望这个Demo,可以给大家在视频滤镜制作上带来一些灵感、避免重复造轮子。也希望大家转载的时候带上原文地址,算是对原创的鼓励。

最下方有Demo地址
运行环境Xcode7.3.1

这个Demo应该是对GPUImage的总结吧,包含了视频写入,滤镜信息读取。前面几篇文章也分别对GPUImage中常用的功能进行了分别介绍。虽说GPUImage是开源的,但对初学者来讲上手还是有一定难度的,希望可以帮助大家。

在GPUImage的探索的道路上依旧还未停止。

这里写图片描述

需求:

序号 描述
1. 实现画面获取:使用GPUImageMovieCamera
2. 实现画面呈现:使用GPUImageView
3. 实现美颜滤镜:包含读取图像颜色矩阵,以及GPUImage自带滤镜组合和网上流传的美颜滤镜
4. 实现实时滤镜视频处理:使用GPUImageMovieWriter
5. 实现保存到相册,并播放。
6. 简单地切换动画,让过程看起来更自然。

效果如图 :

这里写图片描述偏微黄滤镜![这里写图片描述]

Demo目录:

这里写图片描述

相关类 说明:
Frameworks 是使用GPUImage的必须依赖库。
GPUImageCustomLookupFilter 是将读取图片信息并将之转化为滤镜 的关键类。也包含一些我自己的滤镜组合,包含鱼眼滤镜、水晶球滤镜、放行滤镜、浮雕、反鱼眼等。
FSKVideoFilterVc 是主控制器,包含切换摄像头、视频滤镜写入、视频录制播放、保存相册、切换滤镜、以及组合滤镜的使用方法。
SkVideoFilterView 是滤镜的视图,继承collectionview,一共包含大概30种组合滤镜。
FilterModel 是滤镜Model,处理滤镜名称定义,以及滤镜列表的初始化。
SSGPUImageBeautyFilter 就是GPUImageBeautifulFilter,只是换了个名字而已。
MyLayout 是一个继承UICollectionViewFlowLayout的布局类,一个是拥有缩放效果的布局方式,后来我把缩放效果调成了0,因为综合效果的原因。
 CGFloat distance = offset - attribute.center.x;
        // 越往中心移动,值越小,那么缩放就越小,从而显示就越大
        // 同样,超过中心后,越往左、右走,缩放就越大,显示就越小
        CGFloat scaleForDistance = distance / self.itemSize.height;
        // 可调整,值越大,显示就越大
        CGFloat scaleForCell = 1 + 0 * (1 - fabs(scaleForDistance));

        // only scale y-axis
        attribute.transform3D = CATransform3DMakeScale(1, scaleForCell, 1);
        attribute.zIndex = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值