-
Notifications
You must be signed in to change notification settings - Fork 272
filter
yulin6666 edited this page Apr 1, 2017
·
48 revisions
美颜是指对主播图片进行美白、磨皮、红润等效果,目前SDK内置了6种美颜,部分美白磨皮效果都是默认的,不能进行动态修改。
需要注意的是:
1.美颜滤镜新增了红润参数(iOS融合版v1.8.1及其以后版本,红润参数启用需要依赖 KSYGPUResource.bundle中的资源)
2.新增特效滤镜KSYBuildInSpecialEffects, 其中包括6种内置特效和自定义特效接口 (iOS融合版v1.8.1及其以后版本,内置特效也需要依赖 KSYGPUResource.bundle),内置特效采用setSpecialEffectsId来进行设置
//初始化并指定 1~6 的index来创建对应效果
KSYBuildInSpecialEffects * sf = [[KSYBuildInSpecialEffects alloc] initWithIdx:1];
//指定 1~6 的index来创建对应效果
[sf setSpecialEffectsIdx: effectIdx];
内置特效描述请见:
effectIdx | 名称及效果 |
---|---|
1 | 小清新 |
2 | 靓丽 |
3 | 甜美可人 |
4 | 怀旧 |
5 | 蓝调 |
6 | 老照片 |
3.新增美颜KSYBeautifyProFilter,iOS融合版v1.9.3及其以后版本提供支持,本次主要针对之前美颜存在肤色不自然、偏色等问题,以及针对我们的使用场景,对美颜进行了优化。
美颜效果描述请见:
Filter Name | 名称 | 效果描述 | 是否依赖KSYGPUResource.bundle |
---|---|---|---|
KSYGPUBeautifyExtFilter | 嫩肤 | 美白(中)+磨皮(中)+红润(强) | 否 |
KSYGPUBeautifyFilter | 白肤 | 美白(强)+磨皮(中)+红润(低) | 否 |
KSYGPUDnoiseFilter | 自然 | 美白(中)+磨皮(低)+红润(低) | 否 |
KSYGPUBeautifyPlusFilter | 柔肤 | 美白(中)+磨皮(中)+红润(中) | 否 |
KSYBeautifyFaceFilter | 白皙 | 美白(中)+磨皮(强)+红润(低) | 是 |
KSYBeautifyProFilter | 粉嫩 | 美白(中)+磨皮(强)+红润(中) | 是 |
效果描述是只针对默认效果,具体参数是可调节的。
初始化滤镜
- 美颜滤镜
//初始化滤镜
_filter = [[KSYGPUBeautifyExtFilter alloc] init];
- 滤镜组合
//初始化美颜滤镜
KSYGPUBeautifyExtFilter * bf = [[KSYGPUBeautifyExtFilter alloc] init];
//初始化褐色(怀旧)滤镜
GPUImageSepiaFilter * pf =[[GPUImageSepiaFilter alloc] init];
//组装滤镜
[bf addTarget:pf];
//初始化滤镜组
GPUImageFilterGroup * fg = [[GPUImageFilterGroup alloc] init];
//将滤镜添加到滤镜组
[fg addFilter:bf];
[fg addFilter:pf];
//组装滤镜
[fg setInitialFilters:[NSArray arrayWithObject:bf]];
[fg setTerminalFilter:pf];
_filter = fg;
- 美白滤镜
//初始化美颜滤镜
_filter = [[KSYBeautifyFaceFilter alloc] init];
设置滤镜
[_kit setupFilter: _filter];
调整滤镜参数
对于美颜滤镜可以调节美颜等级
[(KSYGPUBeautifyExtFilter *)_filter setBeautylevel: level];//level 1.0 ~ 5.0
对于美白滤镜可以调节磨皮、白皙的等级
(KSYBeautifyFaceFilter *)_filter.grindRatio = level;//0.0 ~ 0.8 0.7为默认等级
(KSYBeautifyFaceFilter *)_filter.whitenRatio = level;//0.0 ~ 1.0 0.5为默认等级
取消滤镜
_filter = nil;
[_kit setupFilter: _filter];//取消滤镜只要将_filter置为nil就行
测试说明
- 温度取值摄像头下方
- 设备为iphone6s iOS 9.3
- 采集配置:分辨率360p、帧率15fps、码率500kbps、gop 3s
Filter Name | 名称 | CPU占用(开启前) | CPU占用(开启后) | GPU占用(开启前) | GPU占用(开启后) | 设备温度(开启前) | 设备温度(开启10mins后) |
---|---|---|---|---|---|---|---|
KSYGPUBeautifyExtFilter | 嫩肤 | 21.85% | 26.2% | 20.4% | 21.1% | 30 | 32.4 |
KSYGPUBeautifyFilter | 白肤 | 21.85% | 27.15% | 20.4% | 22.1% | 30 | 30.1 |
KSYGPUDnoiseFilter | 自然 | 21.85% | 25.7% | 20.4% | 25.4% | 30 | 32.9 |
KSYGPUBeautifyPlusFilter | 柔肤 | 21.85% | 31.6% | 20.4% | 21.2% | 30 | 32.7 |
KSYBeautifyFaceFilter | 白皙 | 21.85% | 25.1% | 20.4% | 23.7% | 30 | 32.5 |
KSYGPUBeautifyExtFilter | KSYGPUBeautifyFilter |
---|---|
KSYGPUDnoiseFilter | KSYGPUBeautifyPlusFilter |
---|---|
KSYBeautifyFaceFilter 50% | KSYBeautifyFaceFilter 100% |
---|---|
某椒 | 某客 |
---|---|
KSYGPUBeautifyExtFilter | KSYGPUBeautifyFilter |
---|---|
KSYGPUDnoiseFilter | KSYGPUBeautifyPlusFilter |
---|---|
KSYBeautifyFaceFilter 50% | KSYBeautifyFaceFilter 100% |
---|---|
某椒 | 某客 |
---|---|