iOS——GPUImage初学

GPUImage是一个基于GPU图像和视频处理的开源iOS框架,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。
使用GPUImage处理图片比CoreImage更简单,只需要将过滤器赋给图片对象即可,不需要考虑context或者设备等其他问题。

GPUImage是现在做滤镜最主流的开源框架,没有之一。作者BradLarson基于openGL对图片处理单元进行封装,提供出GPUImageFilter基类,配合shader,常用滤镜都拿下不是问题。

我们通常使用cocoa pods导入GPUImage框架

一、GPUImage基本概念

GPUImage中的有几个概念:
⁃ output,输出源
⁃ intput,输入源
⁃ filter,滤镜
一个完整的滤镜处理流程是: output+X+input,X就是滤镜组(1+个滤镜)。
GPUImage为了方便,新版本中提供了GPUImageFilterPipeline(滤镜管道) 这个东西,方便用户使用多个滤镜组合,不用担心前后的链式逻辑。

GPUImage将图片滤镜处理和动态滤镜分开了
1、动态滤镜是按照滤镜处理流程是: output+X+input。
2、图片处理却是以(output+filter)*X + input这种逻辑。

二、输入源

输入源作为响应链的起点。这些基础类会把图像作为纹理,传给OpenGL ES处理,然后把纹理传递给响应链的下一个对象。

GPUImage的四大输入基础类
GPUImageVideoCamera 摄像头-视频流
GPUImageStillCamera 摄像头-照相
GPUImagePicture 图片
GPUImageMovie 视频

三、输出源

GPUImageFramebuffer就是用来管理纹理缓存的格式与读写帧缓存的buffer。

三、filter,滤镜

GPUImageFilter就是用来接收源图像,通过自定义的顶点、片元着色器来渲染新的图像,并在绘制完成后通知响应链的下一个对象。
详细介绍参考http://www.jianshu.com/nb/4268718

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,249评论 19赞 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,847评论 4赞 61
  • 一生无悔!
    一脚定江山阅读 243评论 0赞 1
  • 男人之美在于大度; 女人之美在于善良; 孩子之美在于天真; 家庭之美在于和谐; 生活之美在于品位; 朋友之美在于真...
    赵明娇阅读 234评论 0赞 0
  • 文/徐电 如果你身边不是我 如果我身边没有你 也请不要难过 我遇到你之前 你遇到我之前 不也同样生活 如果我身边永...
    到马路对面去阅读 445评论 2赞 5

友情链接更多精彩内容