一、下载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. RAC性能分析 - gc buffer busy acquire 等待事件

    概述---------------------gc buffer busy是RAC数据库中常见的等待事件,11g开始gc buffer  busy分为gc buffer busy acquire和gc ...

  2. MySQL的前缀索引及Oracle的类似实现

    MySQL有一个很有意思的索引类型,叫做前缀索引,它可以给某个文本字段的前面部分单独做索引,从而降低索引的大小. 其实,Oracle也有类似的实现,对于文本,它可以通过substr的函数索引,实现同样 ...

  3. 获取图片的metaData

    获取图片的metaData 获取简易的metaData较为容易,以下是测试图: 以下是本人提供的源码: UIImage+MetaData.h // // UIImage+MetaData.h // P ...

  4. Sharepoint 2013 - 直接显示Doclib中的html page

    缺省的HTML不能直接显示,会被要求存盘.以下操作可以修改 Go to Central Administration Select Manage web applications Select the ...

  5. Redis info参数总结

    可以看到,info的输出结果是分几块的,有Servers.Clients.Memory等等,通过info后面接这些参数,可以指定输出某一块数据. 下面是针对info的输出在旁边注释了,因为对Redis ...

  6. java 扁平化输出json所有节点key/value

    本章主要介绍用java实现扁平化输出json所有节点key/value(包含所有内层子节点) 1.json结构 目的输出bill_list下的datalist里的子节点key/value 2.实现代码 ...

  7. 「PKUWC2018」随机算法

    题目 思博状压写不出是不是没救了呀 首先我们直接状压当前最大独立集的大小显然是不对的,因为我们的答案还和我们考虑的顺序有关 我们发现最大独立集的个数好像不是很多,可能是\(O(n)\)级别的,于是我们 ...

  8. 【洛谷】【扩欧】P1516 青蛙的约会

    [题目描述] 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有 ...

  9. (十一)T检验-第二部分

    了解什么是有效大小,尝试一个单一样本t检验的完整示例. 效应量 调查研究的一个重要方面是效应量,在实验性研究中或存在处理变量的研究中,效应量是指处理效应的大小,意思很直观: 在非实验性研究中,效应量是 ...

  10. docker 部署 redmine 项目管理软件

    最近部署一套redmine项目管理程序, ruby部署各种问题,用docker 直接run, 简单方便. . docker run --name=mysql-redmine -d -p : -v /d ...