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为滤镜

时间: 2024-09-28 16:39:19

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

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

一.ios-ngn-statck工程 1.Tests ---功能测试 2.底层模块(c和c++) Doubango --- 基于3GPP IMS/RCS 并能用于嵌入式和桌面系统的开源框架 1) tinyWRAP --- c++代码,对c代码以面向面向对象的方式进行封装,提供给上层调用. 2) tinyDAV --- Doubango媒体音频/视频控制,tinyMedia核心框架 a) audio --- 音频 b) codecs --- 编解码器 c) msrp --- 文件传输 d)vide

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

GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图片. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上对滤镜的命名的理解,粗略简单地对GPUImage.h里引用的各个滤镜进行简要说明.这样方便以后找到想要的滤镜效果.其中可能有理解错误,或者表达不准确的地方还请大家斧正.其中有些效果需要使用摄像头才可能有比较理想的效果. 附上注释的GPUImage.h代码: #import "GLProgram.h&

iOS第三方做滤镜最主流的开源框架GPUImage

GPUImage是现在iOS做滤镜最主流的开源框架.作者BradLarson基于openGL对图片处理单元进行封装,提供出GPUImageFilter基类,配合shader,常用滤镜都拿下不是问题.  GPUImage中的有几个概念: ? output,输出源 ? intput,输入源 ? filter,滤镜 所以一个完整的滤镜处理流程是: output+X+input,X就是滤镜组(1+个滤镜).GPUImage为了方便,新版本中提供了GPUImageFilterPipeline 这个东西,方

ios常用开源框架

KissXml——xml解析库相关教程:http://www.iteye.com/topic/625849 http://sencho.blog.163.com/blog/static/83056228201151743110540/ 很方便的一个xml解析器,支持Xpath查询. skpsmtpmessage——Quick SMTP邮件发送svn checkout http://skpsmtpmessage.googlecode.com/svn/trunk/ skpsmtpmessage-re

ios开发开源框架管理工具Cocoapods安装使用

Cocoapod是一个强大的第三方的开源框架的管理工具,其中的各种开源类库,很多都是持续更新;那么我们在使用的时候就可以使用到最新的类库;由于我们在使用开源框架的时候,也难免会遇到 第三方类库可能会出现的Bug,或者由于苹果的SDK更新,各种框架也需要更新,使用Cocoapods的话就可以一键更新到最新的开源框架了! 首先就是要安装Cocoapos了,安装它需要ruby环境,但是较新的Mac 系统已经为我们安装好了ruby,所以我们现在可以直接安装Cocoapods啦! 安装Cocoapods步

iOS中 HeathKit框架学习 步数统计等 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!iOS开发者交流QQ群: 446310206 HeathKit框架学习 本文结构 简介 用户数据安全及隐私 HeathKit框架 HeathKit使用 总结 简介 HeathKit是Apple公司在推出iOS 8 系统时一块推出的关于健康信息的框架.如果iPhone手机系统升级到iOS8之后就会发现多了一个健康-app,这就是Apple提供的一个记录用户健康信息的app,可以用它来分享健康和健身数据.还可以指定数

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

ThinkPHP简称TP,TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需要一个入口文件,一起搞定,简单高效.中文文档齐全,入门超级简单.自带模板引擎,具有独特的数据验证和自动填充功能,框架更新速度比较速度. 优点:这个框架易使用 易学 安全 对bae sae支持很好提供的工具也很强大 可以支持比较大的项目开发 易扩展 全中文文档 总的来说这款框架适合非常适合国人使用 性能 上比CI还要强一些 缺点:配置对有些人来说有些复杂(其实是因为没有认真的读过其框架源码)文档有

IOS中MapKit框架使用地图的显示

1.导入主头文件 #import <MapKit/MapKit.h> MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件 :MKMapView,专门用于地图显示 2. 设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置 MKUserTrackingModeNone :不跟踪用户的位置 MKUserTrackingModeFollow :跟踪并在地图上显示用户的当前位置 MKUserTrackingMo

IOS中CoreLocation框架地理定位

1.CoreLocation框架使用前提: #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是CL ,CoreLocation中使用CLLocationManager对象来做用户定位 2.CLLocationManager的常用操作: 开始用户定位 - (void)startUpdatingLocation; 停止用户定位 - (void) stopUpdatingLocation; 当调用了startUpdatin