柔光就是加了一层滤镜,如果是图片上面加柔光,看这个文章就可以了《IOS使用GPUImage滤镜初级试水》。如果是为了给录制的视频加柔光,也是使用的GPUImageSoftLightBlendFilter这个滤镜效果。
一、柔光滤镜
因为GPUImageSoftLightBlendFilter
是GPUImageTwoInputFilter
的子类,而GPUImageTwoInputFilter
是GPUImageFilter
的子类,对两个输入纹理进行通用的处理,需要继承它并准备自己的片元着色器。所以为了方便,就封装了一个柔光类,里面使用一个图片blend.png
,专门对视频用。
DSoftLightBlendFilter.h文件
#import "GPUImageFilterGroup.h"
#import "GPUImage.h"
@interface DSoftLightBlendFilter : GPUImageFilterGroup
{
GPUImagePicture *imageSource ;
}
@end
DSoftLightBlendFilter.m文件
#import "DSoftLightBlendFilter.h"
@implementation DSoftLightBlendFilter
- (id)init
{
if (!(self = [super init]))
{
return nil;
}
UIImage *image = [UIImage imageNamed:@"blend.png"];
imageSource = [[GPUImagePicture alloc] initWithImage:image];
GPUImageSoftLightBlendFilter *filter = [[GPUImageSoftLightBlendFilter alloc] init];
[self addFilter:filter];
[imageSource addTarget:filter atTextureLocation:1];
[imageSource processImage];
self.initialFilters = [NSArray arrayWithObjects:filter, nil];
self.terminalFilter = filter;
return self;
}
@end
视频使用的时候就像使用一个普通的filter加到GPUImageVideoCamera、GPUImageMovieWriter上面即可。
二、美颜滤镜
美颜滤镜是使用的这个GPUImageBeautifyFilter,在这个基础上我调低了效果,加了一个美颜参数的设置。
//设置美化强度
- (id)initWithDegree:(float)degree;
这样就可以设置不同的美颜强度了。
三、使用
使用两个可以叠加使用,新建一个GPUImageFilterGroup *filterGroup;,然后叠加
filterGroup = [[GPUImageFilterGroup alloc] init];
[filterGroup addFilter:beautifyFilter];
[filterGroup addFilter:m_softLightBlendFilter];
[beautifyFilter addTarget:m_softLightBlendFilter];
[filterGroup setInitialFilters:[NSArray arrayWithObject: beautifyFilter]];
[filterGroup setTerminalFilter:m_softLightBlendFilter];
[filterGroup addTarget:m_filteredVideoView];
[m_videoCamera addTarget:filterGroup];
[m_videoCamera startCameraCapture];
记得录视频把moviewriter加上
//写入加上滤镜
[filterGroup addTarget:m_movieWriter];
四、Demo下载
这个demo同时加入了光度、曝光、对比度、饱和度、柔光、美颜的调节,可以看下效果。
Github下载:https://github.com/DamonHu/SoftLightBlendFilterDemo
Gitosc下载:http://git.oschina.net/DamonHoo/SoftLightBlendFilterDemo
五、demo演示
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/539.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!
11 条评论
想请教你美颜强度那个的具体实现。
美颜就是用的别人的写的滤镜,滤镜的实现他有专门详细的文章,而强度就是在他的基础上面调整混合的强度
链接名称也改成 LOL代练 吧 我已经给你上链了,你看一下能不能用
修改好了,我去你网站看的是手机版,暂时没看到,晚点我再看看
http://www.dailianku.com
博客互换友联,大哥我想做你的小弟,收下我把
给我说下你博客地址,我晚上加上,大家一起学习,共同进步
百度搜索代练库就是我地址这里写上会屏蔽
已经加上了
恩 我的关键词不是代练库 是 lol代练 麻烦大哥改一下友情链接的关键词 你的博客 关键词是 胡东东博客 吧
嗯,那个是链接名称,我已经把描述修改为LOL代练了