![](https://img.haomeiwen.com/i11278703/2cf06017628c13d6.jpg)
图片滤镜
GPUImagePicture 用于已拍摄的图片加滤镜
demo下载地址:https://github.com/SXDgit/GPUImage_Picture
直接上代码:
- (UIImage *)imageProcessdUsingGPUImage:(UIImage *)imageToProcess {
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc]initWithImage:imageToProcess];
// 设置滤镜
GPUImageSepiaFilter *stillImageFilter = [[GPUImageSepiaFilter alloc]init];
[stillImageSource addTarget:stillImageFilter];
[stillImageFilter useNextFrameForImageCapture];
[stillImageSource processImage];
UIImage *currentFilteredVideoFrame = [stillImageFilter imageFromCurrentFramebuffer];
return currentFilteredVideoFrame;
}
效果图:
处理图片的方法有多种:CPU、CoreImage、GPUImage
处理效率(性能):CPU
>= GPUImage
> CoreImage
具体可参考:https://blog.csdn.net/xoxo_x/article/details/53507016
GPUImageStillCamera 用于实时拍摄照片加滤镜
demo下载地址:https://github.com/SXDgit/GPUImage_StillCamera
直接上代码:
- (void)configGPUImageView {
// 可视的预览view
GPUImageView *imageView = [[GPUImageView alloc]initWithFrame:self.view.frame];
imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
imageView.fillMode = kGPUImageFillModePreserveAspectRatio;
self.view = imageView;
// 创建滤镜
self.filter = [[GPUImageSketchFilter alloc]init];
// 创建Camera
self.stillCamera = [[GPUImageStillCamera alloc]initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
_stillCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
[_stillCamera addTarget:_filter];
[_filter addTarget:imageView];
[_stillCamera startCameraCapture];
}
// 拍摄
- (void)buttonAction {
[_stillCamera capturePhotoAsJPEGProcessedUpToFilter:_filter withCompletionHandler:^(NSData *processedJPEG, NSError *error) {
ALAssetsLibrary *library = [[ALAssetsLibrary alloc]init];
[library writeImageDataToSavedPhotosAlbum:processedJPEG metadata:self.stillCamera.currentCaptureMetadata completionBlock:^(NSURL *assetURL, NSError *error) {
if (error) {
NSLog(@"ERROR: failed");
}else {
NSLog(@"SUCCESS: saved");
}
}];
}];
}
效果图:
网友评论