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

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

作者: 佐_笾 | 来源:发表于2019-03-29 22:28 被阅读0次
    01.jpg

    介绍

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

    基本概念

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

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

    image

    source:

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

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

    导入

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

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

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

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

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

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

      image
    • Build PhasesLink 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"即可。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/brkdbqtx.html