一、下载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为滤镜

iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程(一)的更多相关文章

  1. 美团 iOS 端开源框架 Graver 在动态化上的探索与实践

    近些年,移动端动态化技术可谓是“百花齐放”,其中的渲染性能也是动态化技术一直在探索.研究的课题.美团的开源框架 Graver 也为解决动态化框架的渲染性能问题提供了一种新思路:关于布局,我们可以采用“ ...

  2. 基于Doubango的iOS客户端开源框架

    一.ios-ngn-statck工程 1.Tests ---功能测试 2.底层模块(c和c++) Doubango --- 基于3GPP IMS/RCS 并能用于嵌入式和桌面系统的开源框架 1) ti ...

  3. iOS 优秀开源框架 开源包 开发包 from : Podfile of chatsecure ---待完善

    前段时间发现chatsecure的podfile中使用了很多非常优秀的开源包 和 大公司的sdk. 拿出来分享下. 各个类库的作用待完善. platform :ios, "7.0" ...

  4. 关于开源框架GPUImage 的简单说明

    GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图片. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上 ...

  5. 详细说明php的4中开源框架(TP,CI,Laravel,Yii)

    ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和 ...

  6. iOS中WebKit框架应用与解析

    WebKit是iOS8之后引入的专门负责处理网页视图的框架,其比UIWebView更加强大,性能也更优. 引言 在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过UR ...

  7. iOS中第三方框架刷新

    0.先加入主头文件 #import "MJRefresh.h" 1.添加下拉刷新 MJRefreshHeaderView *header = [MJRefreshHeaderVie ...

  8. 关于hexo中plugins博客配置对无法生成index.html文件的影响

    用hexo搭建的博客网站在访问时出现403错误,经调查后发现是public文件夹下的index.html文件丢失. 在csdn上搜了一下发现大家都是查看是否有一下hexo的插件未安装,将未安装插件安装 ...

  9. IOS中调用系统的电话、短信、邮件、浏览功能

    iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...

随机推荐

  1. UIWindow,UINavigationController与UIViewController之间的关系

    UIWindow,UINavigationController与UIViewController之间的关系 虽然每次你都用UINavigationController与UIWindow,但你不一定知道 ...

  2. 高性能网站架构缓存——redis集群

    相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的实际应用中,使用redis肯定不会使用单机版,不光是redis不能使用单机版,其他的也不会使用,所以今天我们来说一下re ...

  3. 【笔记】JS数据类型总结

    JavaScript有六种数据类型,分别为undefined.null.number.string.Boolean.object,前面的五种是基础数据类型,也称之为原始类型,也就是无法再细分的基本类型 ...

  4. Python之数据库模块安装 MySQLdb

    安装,下载地址 安装可能会报错, 1.需要安装VC++,到提示的地址中下载安装即可 2.在下载对应的包版本,如果是win7 64位2.7版本的python,就下载 MySQL_python-1.2.5 ...

  5. Junit之测试顺序---FixMethodOrder

    参考:http://www.cnblogs.com/lukehuang/archive/2013/08/27.html Brief Junit 4.11里增加了指定测试方法执行顺序的特性 测试类的执行 ...

  6. 前端面试总结——http、html和浏览器篇

    1.http和https https的SSL加密是在传输层实现的. (1)http和https的基本概念 http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和 ...

  7. pthread线程内存布局

    http://www.cnblogs.com/snake-hand/p/3148191.html 我们从图上可以看出,两个线程之间的栈是独立的,其他是共享的,所以,在操作共享区域的时候才有可能出现同步 ...

  8. Oracle学习(十一):PL/SQL

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/v123411739/article/details/30231659 1.知识点:能够对照以下的录屏 ...

  9. 【CF1009F】Dominant Indices

    题目 长链剖分板子题啊 长链剖分有几个神奇的性质 所有长链的总点数为\(n\) 任意一个点的\(k\)级祖先所在长链的长度肯定不小于\(k\) 从任意点到根经过的短边数量不超过\(\sqrt{n}\) ...

  10. 【转】说说Android中的style和theme

    最近在做软件从2.3到4.0的改变的一些工作,其中涉及了一些style和theme相关的东西.上网上查了一些东西,这个一并说说.关于android中style和theme的基本使用,这里就不再赘述了, ...