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 使用组合滤镜时直接使用 GPUImageFilterPipeline类来做组合滤镜. 使用组合滤...
    SapientiaWind阅读 1,545评论 0 3
  • 1:首先理解了安装,作者推荐动态库安装,好处就是特么的,你看到的source都是输入源,filters都是滤镜过程...
    aKerdi阅读 2,708评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,196评论 4 61
  • 村里的老屋倒塌了。 年久失修,久无人住,就像走过一个世纪的老人,到了风烛残年,终是躲不过那一劫。 院子里满是杂草,...
    老铁的五月麦田阅读 640评论 0 1
  • 1、 一天中午,和销售、客户一起吃饭。中间销售说起了一件事情,H小姐的老公是L先生。 当时听到这个说法,大家的嘴巴...
    奋斗De奶爸阅读 1,599评论 4 9