GPUImge学习日记(3) 之滤镜组合使用
来源:互联网 发布:外汇收入 知乎 编辑:程序博客网 时间:2024/06/05 11:52
简介:我们常常遇到需要叠加使用滤镜的业务需求,比如一个相机app里既需要素描效果的同时又需要周围阴影效果以突出中间图像.这就需要本文介绍的有关滤镜组合使用的内容.
GPUImage 中关于滤镜组合使用有两种方法:
- GPUImageFilterGroup与相应filter(GPUImageFilter)相结合
- 将需要使用的filter相累加
第二种方法以后另讲,这里主要讲一下有关使用GPUImageFilterGroup来处理滤镜组合的问题.
GPUImageFilterGroup是GPUImageOutput的子类,其中有一个可变数组属性filters,用来存储相应的滤镜.
@property(readwrite,nonatomic,strong)GPUImageOutput<GPUImageInput> *terminalFilter;
@property(readwrite,nonatomic,strong)NSArray *initialFilters;
- (void)viewDidLoad { [super viewDidLoad]; _videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; _videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait; _filter = [[GPUImageFilterGroup alloc] init]; GPUImageSketchFilter *sketchFilter = [[GPUImageSketchFilter alloc] init]; [_filter addFilter:sketchFilter]; GPUImageVignetteFilter *vignetteFilter = [[GPUImageVignetteFilter alloc] init]; [_filter addFilter:vignetteFilter]; [sketchFilter addTarget:vignetteFilter]; [_filter setInitialFilters:[NSArray arrayWithObject:sketchFilter]]; [_filter setTerminalFilter:vignetteFilter]; [_videoCamera addTarget:_filter]; _videoCamera.runBenchmark = YES; _filterView = [[GPUImageView alloc] initWithFrame:self.view.bounds]; self.view = _filterView; [_filter addTarget:_filterView]; [_videoCamera startCameraCapture]; _mButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 50, 50)]; [_mButton setTitle:@"录制" forState:UIControlStateNormal]; [_mButton sizeToFit]; [self.view addSubview:_mButton]; [_mButton addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];}
这样就将素描效果与晕影效果叠加作用在一起了.最后录制视频截图效果如下
阅读全文
0 0
- GPUImge学习日记(3) 之滤镜组合使用
- GPUImge
- 我的css滤镜学习日记
- iOS中滤镜的使用(二)滤镜组合
- 学习日记之组合模式和Effective C++
- BootStrap学习日记之 tooltip 插件使用
- GPUImage 简单使用(二)组合滤镜使用
- iOS GPUImage之GPUImageFilterPipeline组合滤镜(4)
- iOS GPUImage之GPUImageFilterGroup组合滤镜(5)
- 2017.01.02 学习日记-组合模式
- GPUImage 组合滤镜
- GPUImage相机组合滤镜
- CoreImage滤镜的组合
- ffmpeg滤镜组合
- 四书之“大学”学习日记3
- 四书之“中庸”学习日记3
- 四书之《论语》学习日记3
- 日记之英语学习
- iOS 订单选择类型的实现
- 物联网平台相关IoTgo
- 移动端开发:iOS与Android平台上问题列表
- 战场控制系统 线段树
- 环境变量(2)
- GPUImge学习日记(3) 之滤镜组合使用
- Python split() 函数 拆分字符串 将字符串转化为列
- 阿里巴巴淘票票专家分享:如何利用阿里云ARMS,搭建国际化在线售票的业务监控系统
- jsp中<c:forEach>的用法
- 二叉树中和为某一值的路径
- 面试题 关于SelectKey
- MongoDB常用操作指令
- linux 处理两个文件的并集,交集,计数
- 系统相关功能开发(八)-消息