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