本文是使用GPUImage集成camera实时滤镜的demo
1.xcode工程集成GPUImage的库
详见http://blog.csdn.net/xx352890098/article/details/77898200
2.封装camera
/*
* Camera.h
*/
#import <Foundation/Foundation.h>
#import "GPUImage.h"
#import "GPUImageView.h"
@interface Camera : NSObject
@property (nonatomic , strong) GPUImageVideoCamera *camera;
@property (nonatomic , strong) GPUImageView *cameraScreen;
@property (nonatomic , strong) GPUImageFilter *filter;
- (void)startCamera;
- (void)
@end
/*
* Camera.m
*/
#import "Camera.h"
@implementation Camera
- (void)startCamera{
if (!_camera) {
GPUImageVideoCamera *camera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:AVCaptureDevicePositionBack];
camera.outputImageOrientation = UIInterfaceOrientationPortrait;
camera.horizontallyMirrorFrontFacingCamera = YES;
_camera = camera;
}
_filter = [[GPUImageFilter alloc] init];
[self.camera addTarget:_filter];
[_filter addTarget:self.cameraScreen];
[self.camera startCameraCapture];
}
- (void)stopCamera{
[self.camera stopCameraCapture];
}
@end
3.集成在viewcontroller里
self.cameraManager = [[Camera alloc] init];
self.cameraManager.cameraScreen = [[GPUImageView alloc] initWithFrame:self.view.bounds];
self.cameraManager.cameraScreen.fillMode = kGPUImageFillModePreserveAspectRatioAndFill;
[self.view addSubview:self.cameraManager.cameraScreen];
[self.cameraManager startCamera];