GPUImage 简单使用(二)组合滤镜使用

这里组合滤镜我使用的是GPUImageFilterPipeline这个类

 一、步骤:1、创建图片处理类 GPUImagePicture 把图片传进去stillImage

GPUImagePicture *staticPicture = [[GPUImagePicture alloc] initWithImage:stillImage smoothlyScaleOutput:YES];

2、创建多个滤镜的对象

//RGB滤镜 GPUImageRGBFilter * RGBFilter = [[GPUImageRGBFilter alloc] init];

//卡通滤镜 GPUImageToonFilter * toonFilter = [[GPUImageToonFilter alloc] init];

3、把多个滤镜对象放到数组中

NSMutableArray *arrayTemp=[NSMutableArray array];[arrayTemp addObject:RGBFilter];[arrayTemp addObject:toonFilter];

4、创建GPUImageFilterPipeline对象 初始化使用initWithOrderedFilters:(NSArray*) filters input:(GPUImageOutput*)input output:(id)output;

这个方法;这个方法需要三个参数:

filters:多个滤镜的数组

input:被渲染的图片(步骤1 的staticPicture 对象)

output:渲染后的图片的容器(类型是view)

GPUImageFilterPipeline * filterPipeline = [[GPUImageFilterPipeline alloc] initWithOrderedFilters:arrayTemp input:staticPicture output:output];

5、渲染图片 使用 processImage(此方法是GPUImagePicture类下的)和useNextFrameForImageCapture(此方法是GPUImageOutput下也就是单个滤镜);

[staticPicture processImage];

[filter useNextFrameForImageCapture];//这个filter 可以是RGBFilter toonFilter等

6、获取图片 使用currentFilteredFrame(此方法是GPUImageFilterPipeline类下的);

UIImage *img = [pipeline currentFilteredFrame];

7、保存图片

UIImageWriteToSavedPhotosAlbum(img, self,nil, nil);

你可能感兴趣的:(GPUImage 简单使用(二)组合滤镜使用)