1、iOS8.0以上可以UIVisualEffectView做简单的滤镜
2、Accelerate.framework 苹果库,性能最好,有个vImage API
3、系统框架Core Image自带的滤镜效果,常用类:CIContext, CIImage, CIFilter Core Image都提供了大量的滤镜(Filter)
详情可以通过查看官方文档 Core Image官方文档链接
4、采用开源库GPUImage, 开源库GPUImage下载链接
本文采用第四种方式,扩展性强
GPUImage的集成有两种方法:
1. 静态库集成;
2.集成framework
首先我们先在gitHub里面下载GPUImage
下载开源库GPUImage,下载地址:https://github.com/BradLarson/GPUImage
下载我们打开之后文档结构如图所示
先看第一种静态库集成:
第一步
用Xcode打开 iOS 项目,看名字一个是iOS的一个是Mac的,不要打开错了,
此时我们要想想,我们自己生成静态库有几种:
模拟器使用的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版本就可以了模拟器一个+真机一个,当然也可以根据您的项目需求来定
第二步:
1. 生成准备
注意:把Xcode - Build Setting 下的Headers文件夹下 Project中的头文件,全部"拖"到 Public文件夹下面(command+a全选),
操作步骤见下图所示:
2. 开始生成
2.1、首先生成模拟器+Debug模式下的文件
选择模拟器状态(任意模拟器)+ Debug模式 + (command +B编译)
此时打开项目的Products->libGPUImage.a(Show in Finder)可以查看生成的静态库
2.2、然后同样的方法生成选择模拟器状态(任意模拟器)+ Release版本的静态库,只需要切换Dubug模式->Release模式 Command +B运行生成
2.3、生成真机状态下的Dubug模式的静态库 Command +B 生成
2.4、同理可以生成真机状态下Release模式下的静态库 Command +B 生成
最后生成4个静态库
第三步:查看静态库支持的架构
第四步:合成静态库
考虑到我们的项目需要上架app,肯定要Release,同时我们又要考虑我们的模拟器也要用,所以最后合成Release模式两个静态库,模拟器状态一个+真机状态一个
合成的方法:
2、导入关联的系统框架
3、导入头文件就可以使用
#import "GPUImage.h" 编译,OK。
原创地址:http://www.jianshu.com/p/501547f892d5
这里有一个问题待后续解决:
第二部生成的静态库其实只有2个,可能是Debug和release模式的静态库一样,系统就不会生成多余的静态库了,
那么合并的时候只需要合并这两个静态库就可以了。
这个问题待后面解决,如果有谁清楚的,望指点。