一、下载GPUImage

(1)下载地址:https://github.com/BradLarson/GPUImage

(2)下载后打开 GPUImage.xcodeproj  工程,选择真机运行该工程(生成用于真机的lib文件)

(3)点击Products下的 libGPUImage.a右键选择Show in Finder。

(4)将 GPUImage.h文件中包含的头文件全部加入到include中。类似下图方法,文件夹名称可自定。

(5)将 GPUImage.h文件中包含的头文件全部加入到include中。类似下图方法,文件夹名称可自定。

二、创建工程

(1)将“include”和“libGPUImage.a”导入到工程中,结构如下:

(2)创建“.pch”,命名自定,此处如下:

(3)选择 ".pch" 文件,可以看到里面的内容如下:

(4)找到 Project > Build Settings > 搜索 “Prefix Header“;

(5)“Apple LLVM 7.0 -Language″ 栏目中你将会看到 Prefix Header 关键字;

(6)输入“/Users/mac/Desktop/GPUIimageTest/GPUIimageTest/GPUIimageTest-Prefix.pch”(选择你创建的“.pch”文件,show in finder拷贝文件地址,或者直接将文件拖入代码区得到地址即可)

(7)将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度。

(8)在“GPUIimageTest-Prefix.pch”中作如下修改:

(9)Clean 并且 build 你的项目

三、编写测试代码

@interface ViewController ()

{

UIImage * inputImage;

}

@property (weak, nonatomic) IBOutlet UIImageView *changeImageView;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

inputImage = [UIImage imageNamed:@"face.png"];

//使用黑白素描滤镜

GPUImageSketchFilter *disFilter = [[GPUImageSketchFilter alloc] init];

//设置线条粗细默认值为1.0

disFilter.edgeStrength = 1;

//设置要渲染的区域

[disFilter forceProcessingAtSize:inputImage.size];

[disFilter useNextFrameForImageCapture];

//获取数据源

GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:inputImage];

//添加上滤镜

[stillImageSource addTarget:disFilter];

//开始渲染

[stillImageSource processImage];

//获取渲染后的图片

UIImage *newImage = [disFilter imageFromCurrentFramebuffer];

//加载出来

self.changeImageView.image = newImage;

}

原图:

处理之后的图:

四、GPUImage中关键词

⁃ output为输出源

⁃ intput为输入源

⁃ filter为滤镜

最新文章

  1. 激光打印机的Color/paper, Xerography介绍
  2. C语言 ---- 基本数据类型和基本运算 iOS学习-----细碎知识点总结
  3. JS --正则表达式验证、实战之邮箱模式
  4. Codeforces Round #375 (Div. 2) A B C 水 模拟 贪心
  5. 关于windows下c/c++的rand()的一个测试
  6. httpd.conf 禁止运行PHP和html页面
  7. Servlet小知识点
  8. iOS:界面适配--iPhone不同机型适配 6/6plus
  9. ASP.NET中怎样才能使自己的代码运行的效率更高
  10. 关于Centos Linux系统安装Python的问题
  11. springmvc json数据返回前台,中文乱码
  12. Android开发——BroadcastReceiver广播的使用
  13. 原生js实现 五子棋
  14. 关于fftshift----将零频率的分量移到频谱的中心
  15. HTML5 History API & URL 重定向
  16. 1.Ansible安装以及配置
  17. Linux第一章第二章学习笔记
  18. 【大数据】Spark性能优化和故障处理
  19. dedecms列表页调用文章正文内容的方法
  20. rabbitmq集群搭建方法简介(测试机linux centos)【转】

热门文章

  1. NSArray排序方法讲解
  2. 定制controller转场动画
  3. 18年11月5日 NOIP模拟赛
  4. PHP SPL神器实现堆排序
  5. Django之Model (ORM)
  6. django 取model字段的verbose_name值
  7. 25个增强iOS应用程序性能的提示和技巧 — 中级篇
  8. 【bzoj 4154】[Ipsc2015]Generating Synergy
  9. 【bzoj 4589】Hard Nim
  10. MySQL(三)架构