版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.09.04 |
前言
GPUImage
是直接利用显卡实现视频或者图像处理的技术。感兴趣可以看上面几篇文章。
1. GPUImage解析(一) —— 基本概览(一)
2. GPUImage解析(二) —— 基本概览(二)
3. GPUImage解析(三) —— 基本概览(三)
4. GPUImage解析(四) —— 安装方法及框架介绍
5. GPUImage解析(五) —— 框架中的几个基类
功能需求
下面应用GPUImage中的一种滤镜,进行简单的滤镜和显示操作。
功能实现
下面我们就用OC进行简单的实现。
1. JJGPUImageSimpleVC.m
#import "JJGPUImageSimpleVC.h"
#import "GPUImage.h"
@interface JJGPUImageSimpleVC ()
@property (nonatomic, strong) UIImageView *imageView;
@end
@implementation JJGPUImageSimpleVC
#pragma mark - Override Base Function
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
self.imageView = [[UIImageView alloc] init];
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
self.imageView.frame = self.view.frame;
[self.view addSubview:self.imageView];
[self loadImage];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
self.navigationController.navigationBarHidden = NO;
}
#pragma mark - Object Private Function
- (void)loadImage
{
//实例化一种滤镜
GPUImageSepiaFilter *imageFilter = [[GPUImageSepiaFilter alloc] init];
self.imageView.image = [imageFilter imageByFilteringImage:[UIImage imageNamed:@"autumn"]];
}
@end
这里还要注意,在使用之前不要忘记引入头文件。
#import "GPUImage.h"
主要的滤镜操作都在方法- (void)loadImage
里面。
功能实现
下面我们就看一下功能实现的效果图,测试手机使用的是6s plus
。GPUImageFilter
就是用来接收源图像,通过自定义的顶点、片元着色器来渲染新的图像,并在绘制完成后通知响应链的下一个对象。
后记
未完,待续~~~