最近公司的项目需要使用到GPUImage这个框架,本来我们做滤镜有四种方式:
1、iOS8.0以上可以UIVisualEffectView做简单的滤镜
2、Accelerate.framework 苹果库,性能最好,有个vImage API
3、系统框架Core Image自带的滤镜效果,常用类:CIContext, CIImage, CIFilter Core Image都提供了大量的滤镜(Filter)
详情可以通过查看官方文档 Core Image官方文档链接
4、采用开源库GPUImage,开源库GPUImage下载链接
本文采用第四种方式,扩展性强
第一步######
下载开源库GPUImage,下载地址:https://github.com/BradLarson/GPUImage
下载之后文档结构如图

下载下来感觉闷了,即不是SDK可以简单集成,也不是类似于AFN可以使用cocoPods管理,那么我们项目要使用该怎么办呢?各位看官不用着急,看文档了解到需要我们自己生成一个静态库(末尾是.a的那种),那么下面就详细的介绍怎样生成我们项目中所要用到的静态库。
第二步######
用xcode打开ios项目

此时我们要想想,我们自己生成静态库有几种:
模拟器使用的CPU架构
iPhone4s-iPhone5 : i386
iPhone5s-iPhone6plus : x86_64
真机使用的CPU架构
iPhone3gs-iPhone4s : armv7
iPhone5-iPhone5c : armv7s
iPhone5s-iPhone6plus : arm64
特殊:armv7可以在armv7s上正常运行
同时要考虑项目在debug模式和release模式都可能使用,
难道我们要生成四个静态库吗?
debug模式: 模拟器一个 + 真机一个
release模式: 模拟器一个 + 真机一个
最后结论:我们只要生成两个release版本就可以了模拟器一个+真机一个,当然也可以根据您的项目需求来定
第三步:开始生成######
注意:把Headers文件夹下 Project中的头文件,全部拖到 Public文件夹下面

第三步:编译生成######
1、首先生成模拟器+Debug模式下的文件
选择模拟器状态(任意模拟器)+ Debug模式 + (command +B编译)

此时打开项目的Products->libGPUImage.a(Show in Finder)可以查看生成的静态库

2、然后同样的方法生成选择模拟器状态(任意模拟器)+ Release版本的静态库,只需要切换Dubug模式->Release模式 Command +B运行生成

3、生成真机状态下的Dubug模式的静态库 Command +B 生成

4、同理可以生成真机状态下Release模式下的静态库 Command +B 生成
最后生成4个静态库

第四步:查看静态库支持的架构######
打开你的终端,输入终端指令 :
lipo -info 库的路径
Snip20170227_40.png
第四步:合成静态库######
考虑到我们的项目需要上架app,肯定要Release,同时我们又要考虑我们的模拟器也要用,所以最后合成Release模式两个静态库,模拟器状态一个+真机状态一个

合成的方法:
首先打开终端并利用cd指令进入到静态库的路径,然后利用终端输入:
lipo -create 静态库1路径 静态库2路径 -output 合并的静态库
最后可以得到静态库为
Snip20170227_42.png
第四步:导入合成的静态库到我们的项目中######
1、直接把生成的静态库libGPUImage.a+usr文件夹(.h)拖到我们的工程中

2、导入关联的系统框架

3、导入头文件就可以使用
我只能帮您到这里了。