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(@"保存成功"); }}运行结果
阅读全文
0 0
- GPUImage学习日记(1)
- GPUImage学习日记(4)之添加文字水印
- GPUImage学习日记(2)之视频录制
- 线程学习日记(1)
- 线程学习日记(1)
- java学习日记(1)
- Android学习日记(1)
- Android学习日记(1)
- C++学习日记(1)
- JAVA学习日记(1)
- kettle学习日记(1)
- WebTech学习日记(1)
- python学习日记(1)
- AR学习日记(1)
- C++学习日记(1)
- GPUImage
- GPUImage
- GPUImage
- 【23种设计模式】行为型模式 > 观察者模式
- 结构体
- java面向对象/多态
- SpringMVC框架中文乱码解决方案
- windows server 2008搭建NTP时间服务器和客户端
- GPUImage学习日记(1)
- 贪心、动态规划之删数问题2072
- F12 console的用法,以及如何debug程序?
- 计蒜客-三值排序(贪心)
- 内联函数与宏定义
- (reading)A Hierarchical Approach for Generating Descriptive Image Paragraphs
- RE:JAVA学习-认识正则表达式、Object类及包装类
- Spring Data MongoDB 使用group和unwind实现对数组数据进行简单统计
- Hard challenge