笔记-GPUImage(一)简介以及如何正确的导入项目

原文链接:https://juejin.im/post/5c6cf087f265da2dac4546e4

介绍

GPUImage是一个开源的基于GPU的图片或视频的处理框架,其本身内置了近120多种场景的滤镜效果,并且支持照相机和摄像机的实时滤镜,并且能够自定义图像滤镜。

基本概念

GPUImage是采用链式方法处理画面的,通过addTarget方法添加对象到链中,处理完一个target,就会把上一个环节处理的图像数据传递到下一个target处理,成为GPUImage处理链。

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

source:

GPUImageVideoCamera:用于实时拍摄视频
GPUImageStillCamera:用于实时拍摄照片
GPUImagePicture:用于处理已经拍摄好的图片
GPUImageMovie:用于处理已经拍摄好的视频

filter:
GPUImageFilter类或者子类,这个类继承自GPUImageOutput,遵循GPUImageInput协议,既可以流进数据,又可以流出GPUImagefinal targetGPUImageViewGPUImageMovieWriter最终输入目标,显示图片或视频。

导入

GPUImage开源库并不像其他的开源库那样,拖进你的工程就可以用,需要添加依赖关系。

  • 首先官网下载:github.com/BradLarson/…

  • 下载完成后,找到framework文件夹,然后删除GPUImageMac.xcodeproj文件,再进入Source文件夹,删除Mac文件夹(这一步不做的话,即使导入成功,编译也会出错,当时走了不少弯路)

  • framework文件夹下的GPUImage.xcodeproj文件拖入到项目里,应该是这样的

  • 在项目根目录里新建GPUImage文件夹,把之前处理过的framework文件夹复制进GPUImage文件夹下。

  • 在项目的Targets依赖设置里添加GPUImage作为Target Dependencies

  • Build PhasesLink Binary With Libraries下,把libGPUImage.a加进去。

  • 然后添加下面这些系统的framework:CoreMedia、CoreVideo、OpenGLES、AVFoundation、QuartzCore(不添加也不影响)

  • 添加头文件路径:Build Settings -> Header Search Paths 添加GPUImage的路径,前面提到,在项目的根目录下创建了一个GPUImage文件夹,framework在该文件夹下,所以添加的路径为GPUImage/framework。注意,路径需要选择recursive

  • Build sSetting里面,Other Linker Flags 里面添加 -fobjc-arc -ObjC这两项

  • 最后,在需要的文件里引入头文件#import "GPUImage.h"即可。

展开阅读全文

没有更多推荐了,返回首页