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为滤镜
iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程(一)的更多相关文章
- 美团 iOS 端开源框架 Graver 在动态化上的探索与实践
近些年,移动端动态化技术可谓是“百花齐放”,其中的渲染性能也是动态化技术一直在探索.研究的课题.美团的开源框架 Graver 也为解决动态化框架的渲染性能问题提供了一种新思路:关于布局,我们可以采用“ ...
- 基于Doubango的iOS客户端开源框架
一.ios-ngn-statck工程 1.Tests ---功能测试 2.底层模块(c和c++) Doubango --- 基于3GPP IMS/RCS 并能用于嵌入式和桌面系统的开源框架 1) ti ...
- iOS 优秀开源框架 开源包 开发包 from : Podfile of chatsecure ---待完善
前段时间发现chatsecure的podfile中使用了很多非常优秀的开源包 和 大公司的sdk. 拿出来分享下. 各个类库的作用待完善. platform :ios, "7.0" ...
- 关于开源框架GPUImage 的简单说明
GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图片. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上 ...
- 详细说明php的4中开源框架(TP,CI,Laravel,Yii)
ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和 ...
- iOS中WebKit框架应用与解析
WebKit是iOS8之后引入的专门负责处理网页视图的框架,其比UIWebView更加强大,性能也更优. 引言 在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过UR ...
- iOS中第三方框架刷新
0.先加入主头文件 #import "MJRefresh.h" 1.添加下拉刷新 MJRefreshHeaderView *header = [MJRefreshHeaderVie ...
- 关于hexo中plugins博客配置对无法生成index.html文件的影响
用hexo搭建的博客网站在访问时出现403错误,经调查后发现是public文件夹下的index.html文件丢失. 在csdn上搜了一下发现大家都是查看是否有一下hexo的插件未安装,将未安装插件安装 ...
- IOS中调用系统的电话、短信、邮件、浏览功能
iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...
随机推荐
- REST Framework 的分页
分页: PageNumberPagination from rest_framework.pagination import PageNumberPagination 导入分页之后你要实例化分页这个对 ...
- Linux zip命令详解
zip常见命令参数 Usage: zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] The ...
- jumpserver 问题,给自己看的哦,你们不准看哟
给自己看的,排版忽略! http://docs.jumpserver.org/zh/docs/setup_by_centos7.html 看完全部文档后解决不了再看下边的!!! docker 服务启动 ...
- 在windows下的hdfs客户端编写
在windows下的hdfs客户端编写 新建一个工程,右键 properties -> java build path -> libraries 和之前一样的操作,这次 new 一个 us ...
- .Net WebApi 支持跨域访问使用 Microsoft.AspNet.WebApi.Cors
首先导入Cors库,通过程序包管理控制台导入 Install-Package Microsoft.AspNet.WebApi.Cors 引用库之后,我们需要进行简单的配置. 现在WebApiConfi ...
- log4j.properties的配置详解
log4j.rootLogger=ERROR,A1log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout= ...
- MongoDb 物理位置应用实现
1代码实现 官方驱动2.7版本 1.1范围查找 /// <summary> /// 半径范围查找位置信息 /// </summary> /// <param name=& ...
- CVE-2017-8046 复现与分析
环境搭建 使用的项目为https://github.com/spring-guides/gs-accessing-data-rest.git里面的complete,直接用IDEA导入,并修改pom.x ...
- nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案
node本身并不支持es6语法,我们通常在vue项目中使用es6语法,是因为,我们使用babel做过处理, 为了让项目支持es6语法,我们必须同时使用babel 去启动我们的程序,所以再启动程序中加 ...
- Mac app打包成dmg
1. 找到打包的app文件,在Xcode工程的Products目录下 2. 在桌面新建一个文件夹dmg,将app文件放进去. 3. 为了实现拖拽到Application的效果,需要在这个文件夹里放一个 ...