01.jpg
介绍
GPUImage是一个开源的基于GPU的图片或视频的处理框架,其本身内置了近120多种场景的滤镜效果,并且支持照相机和摄像机的实时滤镜,并且能够自定义图像滤镜。
基本概念
GPUImage是采用链式方法处理画面的,通过addTarget方法添加对象到链中,处理完一个target,就会把上一个环节处理的图像数据传递到下一个target处理,成为GPUImage处理链。
GPUImage的四大输入基础类,都可以作为响应链的起点,这些基础类会把图像作为纹理传给OpenGL ES处理,然后把纹理传递给响应链的下一个target对象。
source:
GPUImageVideoCamera:用于实时拍摄视频
GPUImageStillCamera:用于实时拍摄照片
GPUImagePicture:用于处理已经拍摄好的图片
GPUImageMovie:用于处理已经拍摄好的视频
filter:
GPUImageFilter类或者子类,这个类继承自GPUImageOutput,遵循GPUImageInput协议,既可以流进数据,又可以流出GPUImage的final target:GPUImageView、GPUImageMovieWriter最终输入目标,显示图片或视频。
导入
GPUImage开源库并不像其他的开源库那样,拖进你的工程就可以用,需要添加依赖关系。
-
下载完成后,找到
framework文件夹,然后删除GPUImageMac.xcodeproj文件,再进入Source文件夹,删除Mac文件夹(这一步不做的话,即使导入成功,编译也会出错,当时走了不少弯路) -
将
framework文件夹下的GPUImage.xcodeproj文件拖入到项目里,应该是这样的
image
-
在项目根目录里新建
GPUImage文件夹,把之前处理过的framework文件夹复制进GPUImage文件夹下。
image
-
在项目的
Targets依赖设置里添加GPUImage作为Target Dependenciesimage
-
在
Build Phases的Link Binary With Libraries下,把libGPUImage.a加进去。
image
-
然后添加下面这些系统的framework:
CoreMedia、CoreVideo、OpenGLES、AVFoundation、QuartzCore(不添加也不影响) -
添加头文件路径:
Build Settings -> Header Search Paths添加GPUImage的路径,前面提到,在项目的根目录下创建了一个GPUImage文件夹,framework在该文件夹下,所以添加的路径为GPUImage/framework。注意,路径需要选择recursive。
image
-
在
Build sSetting里面,Other Linker Flags里面添加-fobjc-arc -ObjC这两项 -
最后,在需要的文件里引入头文件
#import "GPUImage.h"即可。












网友评论