版本記錄
| 版本號 | 時(shí)間 |
|---|---|
| V1.0 | 2017.09.04 |
前言
GPUImage是直接利用顯卡實(shí)現(xiàn)視頻或者圖像處理的技術(shù)。感興趣可以看上面幾篇文章。
1. GPUImage解析(一) —— 基本概覽(一)
2. GPUImage解析(二) —— 基本概覽(二)
3. GPUImage解析(三) —— 基本概覽(三)
4. GPUImage解析(四) —— 安裝方法及框架介紹
5. GPUImage解析(五) —— 框架中的幾個(gè)基類
功能需求
下面應(yīng)用GPUImage中的一種濾鏡,進(jìn)行簡單的濾鏡和顯示操作。
功能實(shí)現(xiàn)
下面我們就用OC進(jìn)行簡單的實(shí)現(xiàn)。
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
{
//實(shí)例化一種濾鏡
GPUImageSepiaFilter *imageFilter = [[GPUImageSepiaFilter alloc] init];
self.imageView.image = [imageFilter imageByFilteringImage:[UIImage imageNamed:@"autumn"]];
}
@end
這里還要注意,在使用之前不要忘記引入頭文件。
#import "GPUImage.h"
主要的濾鏡操作都在方法- (void)loadImage里面。
功能實(shí)現(xiàn)
下面我們就看一下功能實(shí)現(xiàn)的效果圖,測試手機(jī)使用的是6s plus。GPUImageFilter就是用來接收源圖像,通過自定義的頂點(diǎn)、片元著色器來渲染新的圖像,并在繪制完成后通知響應(yīng)鏈的下一個(gè)對象。

后記
未完,待續(xù)~~~
