美文网首页iOS
GPUImage 极简使用

GPUImage 极简使用

作者: ChiCoChiCo | 来源:发表于2018-06-15 12:01 被阅读0次

单张图片处理

1.单个滤镜

//设置滤镜
[self.filter useNextFrameForImageCapture];
[self.filter forceProcessingAtSizeRespectingAspectRatio:self.image.size];
self.filter.brightness = 0.5;

// 传入要处理的图片
GPUImagePicture *picture = [[GPUImagePicture alloc] initWithImage:self.image];
// 给图片添加滤镜
[picture addTarget:self.filter];

//渲染
[picture processImage];

//从滤镜中获取图片
[self.imageView setImage:self.filter.imageFromCurrentFramebuffer];

2.滤镜组

//第一个滤镜
self.filter1 = [[GPUImageBrightnessFilter alloc] init];
self.filter1.brightness = 0.0;
    
//第二个滤镜
self.filter2 = [[GPUImageSaturationFilter alloc] init];
self.filter2.saturation = 1.0;
    
//滤镜组
self.groupFilter = [[GPUImageFilterGroup alloc] init];
[self.groupFilter addTarget:self.filter1];
[self.groupFilter addTarget:self.filter2];
[self.groupFilter forceProcessingAtSizeRespectingAspectRatio:self.image.size];
    
//滤镜间的依赖关系,一个滤镜处理好后再去处理下一个滤镜
[self.filter1 addTarget:self.filter2];
[self.groupFilter setInitialFilters:[NSArray arrayWithObject:self.filter1]];
[self.groupFilter setTerminalFilter:self.filter2];
    
//输入源
GPUImagePicture *picture = [[GPUImagePicture alloc] initWithImage:self.image];
[picture addTarget:self.groupFilter];
   
 //处理图片并获取输出 
[self.groupFilter useNextFrameForImageCapture];
[picture processImage];
[self.imageView setImage:self.groupFilter.imageFromCurrentFramebuffer];

3.美颜相机

//创建相机
self.Camera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionFront];
self.Camera.outputImageOrientation = UIInterfaceOrientationPortrait;

//创建滤镜
self.filter = [[GPUImageSaturationFilter alloc] init];
self.filter.saturation = 1.0;
    
//相机上添加滤镜    
[self.Camera addTarget:self.filter];
    
//图片处理后的输出展示
self.GPUImageView = [[GPUImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-64)];
[self.view addSubview:self.GPUImageView];

//输出结果要给显示
[self.filter addTarget:self.GPUImageView];

//开始捕获图像
[self.Camera startCameraCapture];

//拍照获取的图片
 [self.Camera capturePhotoAsJPEGProcessedUpToFilter:self.filter withCompletionHandler:^(NSData *processedJPEG, NSError *error) {
        
  
        
    }];

4.视屏录制

初始化设置
initWithMovieURL:size 视屏保存的地址和视频的大小
startRecording 开始录制
[filter addTarget:self.movieWriter] 添滤镜
[self.movieWriter startRecording] 开始录制
[self.videoCamera pauseCameraCapture]; 暂停
[self.videoCamera resumeCameraCapture]; 恢复

相关文章

  • GPUImage 极简使用

    单张图片处理 1.单个滤镜 2.滤镜组 3.美颜相机 4.视屏录制 初始化设置initWithMovieURL:s...

  • 视频滤镜

    GPUImage原生美颜 GPUImage原生美颜 步骤一:使用Cocoapods导入GPUImage步骤二:创建...

  • iOS GPUImage blog收集

    iOS GPUImage blog收集 GPUImage详解(简书博客) GPUImage(五):五种类型输入源(...

  • GPUImage源码分析与使用(三)

    使用GPUImage拍照添加滤镜 使用GPUImage拍视频添加滤镜 VideoManager.h VideoMa...

  • iOS-DIY美颜相机

    本例是使用GPUImage开源框架,生成美颜相机。实时采集画面,进行美颜。 GPUImage GPUImage是开...

  • iOS滤镜那些事儿

    一. GPUImage 框架的介绍及基本使用 1.GPUImage 的介绍 GPUImage是基于OpenGL E...

  • GPUImage详细解析(十)用GPUImage和指令配合合并视

    前言 GPUImage详细解析在GPUImage文集,在前文GPUImage详细解析(八)视频合并混音中使用了gi...

  • GPUImage

    1.添加GPUImage静态库 关于导入GPUimage到工程已经简单使用:只能用于真机关于GPUImage的导入...

  • GPUImage的基本用法

    建议CocoaPods导入GPUImage类库,引入头文件即可使用:#import "GPUImage.h" 视频...

  • GPUImage视频滤镜

    前言 简单介绍下使用GPUImage以及遇到的问题,GPUImage下载地址https://github.com/...

网友评论

    本文标题:GPUImage 极简使用

    本文链接:https://www.haomeiwen.com/subject/omgpeftx.html