美文网首页ios开发
GPUImage 简单使用(二)组合滤镜使用

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

作者: 困惑困惑困惑 | 来源:发表于2016-11-22 21:27 被阅读252次

    这里组合滤镜我使用的是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 简单使用(二)组合滤镜使用

        本文链接:https://www.haomeiwen.com/subject/uadmpttx.html