//GPUImage可以在github下载最新版本,使用GPUImage需要包含#import "GPUImage.h".
//在摄像头中多滤镜使用需要用到GPUImageFilterGroup.
@property (nonatomic,strong)GPUImageStillCamera *videoCamera;
@property (nonatomic,strong)GPUImageView *cameraView;
@property (nonatomic,strong)GPUImageOutput<GPUImageInput> *filter;
@property (nonatomic,strong)GPUImageOutput<GPUImageInput> *filter1;
@property (nonatomic,strong)GPUImageFilterGroup *filterGroup;
-(void)initCameraView
{
self.videoCamera = [[GPUImageStillCameraalloc]initWithSessionPreset:AVCaptureSessionPreset1920x1080cameraPosition:AVCaptureDevicePositionBack];
self.videoCamera.outputImageOrientation =UIDeviceOrientationPortrait;
self.videoCamera.horizontallyMirrorFrontFacingCamera =YES;
self.videoCamera.horizontallyMirrorRearFacingCamera =NO;
self.cameraView = [[GPUImageViewalloc]init];
[self.viewaddSubview:self.cameraView];
if (!self.filterGroup)
{
self.filterGroup = [[GPUImageFilterGroupalloc]init];
}
if (!self.filter)
{
self.filter = [[GPUImageVignetteFilteralloc]init];
}
//添加另外一个滤镜 ,这里使用了美白滤镜,可以添加对应的acv文件来达到美白效果
if (!self.filter1)
{
self.filter1= [[GPUImageToneCurveFilteralloc]initWithACV:@"美白acv文件名"];
}
if ([self.filterGroupfilterCount] == 0)
{
[(GPUImageFilterGroup *)self.filterGroupaddFilter:self.filter1];
[(GPUImageFilterGroup *)self.filterGroupaddFilter:self.filter];
}
//美白滤镜叠加在最底层
[self.filter1addTarget:self.filter];
[self.filterGroupsetInitialFilters:[NSArrayarrayWithObject:self.filter1]];
[self.filterGroupsetTerminalFilter:self.filter];
[self.filterGroupremoveAllTargets];
[self.videoCameraremoveAllTargets];
[self.filterGroupaddTarget:self.cameraView];
[self.videoCameraaddTarget:self.filterGroup];
}