本片介绍关于捕获图像stillCamera的研究:xoxo_x 著
本文参考:
https://github.com/BradLarson/GPUImage#gpuimage
demo下载地址:
https://github.com/BradLarson/GPUImage/tree/master/examples/iOS/SimplePhotoFilter
步骤 | 内容 |
---|---|
第一步 | 创建预览View 即必须的GPUImageView |
第二步 | 创建滤镜 即这里我们使用的 GPUImageSketchFilter(黑白反色) |
第三步 | 创建Camera 即我们要用到的GPUImageStillCamera |
第四步 | addTarget 并开始处理startCameraCapture |
第五步 | 回调数据、写入相册 |
第一步:创建预览View 即必须的GPUImageView
GPUImageView *primaryView = [[GPUImageView alloc] initWithFrame:mainScreenFrame];
primaryView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
第二步:创建滤镜 即这里我们使用的 GPUImageSketchFilter(黑白反色)
GPUImageSketchFilter *filter = [[GPUImageSketchFilter alloc] init];
第三步:创建Camera 即我们要用到的GPUImageStillCamera
GPUImageStillCamera* stillCamera = [[GPUImageStillCamera alloc] init];
//设置相机方向
stillCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
第四步: addTarget 并开始处理startCameraCapture
[stillCamera addTarget:filter];
[filter addTarget:primaryView];
[stillCamera startCameraCapture];
第五步:添加一个按钮photoCaptureButton,当按钮点击的时候进行以下处理,保存图片到相册
[photoCaptureButton setEnabled:NO];
[stillCamera capturePhotoAsJPEGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedJPEG, NSError *error){
// Save to assets library
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageDataToSavedPhotosAlbum:processedJPEG metadata:stillCamera.currentCaptureMetadata completionBlock:^(NSURL *assetURL, NSError *error2)
{
if