GPUImage解析(六) —— 一个简单的实例(一)

版本记录

版本号 时间
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 plusGPUImageFilter就是用来接收源图像,通过自定义的顶点、片元着色器来渲染新的图像,并在绘制完成后通知响应链的下一个对象。

后记

未完,待续~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容