GPUImage学习日记(1)

来源:互联网 发布:java开发笔试题及答案 编辑:程序博客网 时间:2024/06/06 17:53

简介:GPUImage 是基于GPU处理图像的一个开源库,对图像处理有巨大优势。

引用方式:可直接把源码拖入项目也可直接引用静态库文件。
通过github官方介绍,简单写了个demo。大致思路如下
  • 给GPUImageStillCamera添加滤镜GPUImageSketchFilter
  • 给filter添加输出imageView 即GPUImageView
  • 最后将输出界面添加到视图即可
代码如下
@interface ViewController ()@property(strong, nonatomic) GPUImageStillCamera *videoCamera;@property(strong, nonatomic) GPUImageFilter *customFilter;@property(strong, nonatomic) GPUImageView *filteredVideoView;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    _videoCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];    _videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;    _customFilter = [[GPUImageSketchFilter alloc] init];    _filteredVideoView = [[GPUImageView alloc] initWithFrame:self.view.bounds];    // Add the view somewhere so it's visible    [_videoCamera addTarget:_customFilter];    [_customFilter addTarget:_filteredVideoView];    [self.view addSubview:_filteredVideoView];    [_videoCamera startCameraCapture];    UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake((self.view.bounds.size.width-50)*0.5, self.view.bounds.size.height-60, 50, 50)];    btn.layer.cornerRadius = 25;    btn.backgroundColor = [UIColor redColor];    [self.view addSubview:btn];    [btn addTarget:self action:@selector(takePhoto) forControlEvents:UIControlEventTouchUpInside];}-(void)takePhoto{    [_videoCamera capturePhotoAsImageProcessedUpToFilter:_customFilter withCompletionHandler:^(UIImage *processedImage, NSError *error) {        UIImageWriteToSavedPhotosAlbum(processedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);    }];}- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {    if (error) {        NSLog(@"保存失败");    } else {        NSLog(@"保存成功");    }}
运行结果


原创粉丝点击