218 lines
8.8 KiB
Objective-C
Executable File
218 lines
8.8 KiB
Objective-C
Executable File
//
|
||
// FUBeauty.m
|
||
// FURenderKit
|
||
//
|
||
// Created by 项林平 on 2023/5/16.
|
||
//
|
||
|
||
#import "FUItem.h"
|
||
#import "FUFilterDefineKey.h"
|
||
#import "FUBeautyPropertyModeDefine.h"
|
||
|
||
NS_ASSUME_NONNULL_BEGIN
|
||
|
||
@interface FUBeauty : FUItem
|
||
|
||
/// 磨皮是否使用 mask
|
||
@property (nonatomic, assign) BOOL blurUseMask;
|
||
|
||
/// 朦胧磨皮开关 0清晰磨皮 1朦胧磨皮
|
||
@property (nonatomic, assign) int heavyBlur;
|
||
|
||
/// 磨皮类型 0清晰磨皮 1朦胧磨皮 2精细磨皮 3均匀磨皮
|
||
/// @note 此属性优先级比 heavyBlur 低, 在使用时要将 heavyBlur 设为0
|
||
@property (nonatomic, assign) int blurType;
|
||
|
||
/// 将所有属性恢复到默认值
|
||
- (void)resetToDefault;
|
||
|
||
@end
|
||
|
||
|
||
@interface FUBeauty (Skin)
|
||
|
||
/// 皮肤分割(皮肤美白),YES开启,NO关闭,默认NO
|
||
/// @note 开启时美白效果仅支持皮肤区域,关闭时美白效果支持全局区域
|
||
/// @note 推荐非直播场景和 iPhoneXR 以上机型使用
|
||
@property (nonatomic, assign) BOOL enableSkinSegmentation;
|
||
|
||
/// 肤色检测开关 0为关, 1为开,默认值0.0
|
||
@property (nonatomic, assign) int skinDetect;
|
||
|
||
/// 肤色检测之后非肤色区域的融合程度 取值范围0.0-1.0,默认值0.0
|
||
@property (nonatomic, assign) int nonskinBlurScale;
|
||
|
||
/// 精细磨皮 取值范围0.0-6.0, 默认6.0
|
||
@property (nonatomic, assign) double blurLevel;
|
||
|
||
/// 祛斑痘,取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
/// @note 硬件支持原因,祛斑痘仅支持 iPhoneXR 及以上机型使用
|
||
@property (nonatomic, assign) double antiAcneSpot;
|
||
|
||
/// 美白 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double colorLevel;
|
||
|
||
/// 红润 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double redLevel;
|
||
|
||
/// 清晰 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double clarity;
|
||
|
||
/// 锐化 取值范围0.0-1.0, 默认0.0
|
||
@property (nonatomic, assign) double sharpen;
|
||
|
||
/// 五官立体 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double faceThreed;
|
||
|
||
/// 亮眼 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double eyeBright;
|
||
|
||
/// 美牙 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double toothWhiten;
|
||
|
||
/// 去黑眼圈 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double removePouchStrength;
|
||
|
||
/// 去法令纹 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double removeNasolabialFoldsStrength;
|
||
|
||
@end
|
||
|
||
@interface FUBeauty (Shape)
|
||
|
||
/// 变形取值 0女神变形 1网红变形 2自然变形 3默认变形 4精细变形
|
||
@property (nonatomic, assign) int faceShape;
|
||
|
||
/// 渐变所需要的帧数 0为关闭渐变, 大于0开启渐变
|
||
@property (nonatomic, assign) int changeFrames;
|
||
|
||
/// 变形程度 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值1.0
|
||
@property (nonatomic, assign) double faceShapeLevel;
|
||
|
||
/// v脸 0.0-1.0,默认0.0
|
||
@property (nonatomic, assign) double cheekV;
|
||
|
||
/// 瘦脸 0.0-1.0,默认0.0
|
||
@property (nonatomic, assign) double cheekThinning;
|
||
|
||
/// 长脸 0.0-1.0,默认0.0
|
||
@property (nonatomic, assign) double cheekLong;
|
||
|
||
/// 圆脸 0.0-1.0,默认0.0
|
||
@property (nonatomic, assign) double cheekCircle;
|
||
|
||
/// 窄脸 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double cheekNarrow;
|
||
|
||
/// 小脸 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double cheekSmall;
|
||
|
||
/// 短脸 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double cheekShort;
|
||
|
||
/// 瘦颧骨 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensityCheekbones;
|
||
|
||
/// 瘦下颌骨 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensityLowerJaw;
|
||
|
||
/// 大眼 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double eyeEnlarging;
|
||
|
||
/// 下巴 取值范围 0.0-1.0, 0.5-0是变小, 0.5-1是变大, 默认值0.5
|
||
@property (nonatomic, assign) double intensityChin;
|
||
|
||
/// 额头 取值范围 0.0-1.0, 0.5-0是变小, 0.5-1是变大, 默认值0.5
|
||
@property (nonatomic, assign) double intensityForehead;
|
||
|
||
/// 瘦鼻 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensityNose;
|
||
|
||
/// 嘴型 取值范围 0.0-1.0, 0.5-0.0是变大, 0.5-1.0是变小, 默认值0.5
|
||
@property (nonatomic, assign) double intensityMouth;
|
||
|
||
/// 嘴唇厚度 取值范围 0.0-1.0, 默认值0.5, 0.5-0是变薄, 0.5-1是变厚, 默认值0.5
|
||
@property (nonatomic, assign) double intensityLipThick;
|
||
|
||
/// 眼睛位置 取值范围 0.0-1.0, 默认值0.5, 0.5-0是变低, 0.5-1是变高, 默认值0.5
|
||
@property (nonatomic, assign) double intensityEyeHeight;
|
||
|
||
/// 开眼角 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensityCanthus;
|
||
|
||
/// 眼睑下至 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensityEyeLid;
|
||
|
||
/// 眼距 取值范围 0.0-1.0, 0.5-0.0是变大, 0.5-1.0是变小, 默认值0.5
|
||
@property (nonatomic, assign) double intensityEyeSpace;
|
||
|
||
/// 眼睛角度 取值范围 0.0-1.0, 0.5-0.0逆时针旋转, 0.5-1.0顺时针旋转, 默认值0.5
|
||
@property (nonatomic, assign) double intensityEyeRotate;
|
||
|
||
/// 长鼻 取值范围 0.0-1.0, 0.5-0.0是变长, 0.5-1.0是变短, 默认值0.5
|
||
@property (nonatomic, assign) double intensityLongNose;
|
||
|
||
/// 缩人中 取值范围 0.0-1.0, 0.5-0.0是变短, 0.5-1.0是变长, 默认值0.5
|
||
@property (nonatomic, assign) double intensityPhiltrum;
|
||
|
||
/// 微笑嘴角 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensitySmile;
|
||
|
||
/// 圆眼 取值范围 0.0-1.0, 0.0为无效果, 1.0为最大效果, 默认值0.0
|
||
@property (nonatomic, assign) double intensityEyeCircle;
|
||
|
||
/// 眉毛上下 取值范围 0.0-1.0, 0.5-0是向上, 0.5-1是向下, 默认值0.5
|
||
@property (nonatomic, assign) double intensityBrowHeight;
|
||
|
||
/// 眉间距 取值范围 0.0-1.0, 默认值0.5, 0.5-0是变小, 0.5-1是变大, 默认值0.5
|
||
@property (nonatomic, assign) double intensityBrowSpace;
|
||
|
||
/// 眉毛粗细 取值范围 0.0-1.0, 默认值0.5, 0.5-0是变细, 0.5-1是变粗, 默认值0.5
|
||
@property (nonatomic, assign) double intensityBrowThick;
|
||
|
||
@end
|
||
|
||
@interface FUBeauty (Filter)
|
||
|
||
/// 滤镜名称 字符串类型,默认值为 "origin" , 即为使用原图效果
|
||
/// @see FUFilter
|
||
@property (nonatomic, strong) FUFilter filterName;
|
||
|
||
/// 滤镜程度值 取值范围 0.0-1.0,0.0为无效果, 1.0为最大效果, 默认值1.0
|
||
@property (nonatomic, assign) double filterLevel;
|
||
|
||
/// 获取指定滤镜的程度值
|
||
/// - Parameter filterForKey: 滤镜名称
|
||
- (double)filterValueForKey:(NSString *)filterForKey;
|
||
|
||
/// 所有支持的滤镜名称字符串数组
|
||
- (NSArray *)allFilterKeys;
|
||
|
||
@end
|
||
|
||
@interface FUBeauty (Mode)
|
||
|
||
/**
|
||
* 设置部分美颜属性的mode, 不同mode会有主观上会有不同效果
|
||
* 必须在设置美颜各个属性值之前调用该接口
|
||
* key和mode说明
|
||
| key | 属性 | 支持的mode |
|
||
| ------------- | -------- | ------------------------------------------------------------ |
|
||
| color_level | 美白 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.2.0) |
|
||
| remove_pouch_strength | 去黑眼圈 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.2.0, 高性能设备推荐) |
|
||
| remove_nasolabial_folds_strength | 去法令纹 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.2.0, 高性能设备推荐) |
|
||
| cheek_thinning | 瘦脸 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.3.0) |
|
||
| cheek_narrow | 窄脸 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.0.0) |
|
||
| cheek_small | 小脸 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.0.0) |
|
||
| eye_enlarging | 大眼 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.0.0), FUBeautyPropertyMode3(v8.2.0, 高性能设备推荐) |
|
||
| intensity_chin | 下巴 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.4.0) |
|
||
| intensity_forehead | 额头 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.0.0) |
|
||
| intensity_nose | 瘦鼻 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.0.0) |
|
||
| intensity_mouth | 嘴型 | FUBeautyPropertyMode1, FUBeautyPropertyMode2(v8.0.0), FUBeautyPropertyMode3(v8.2.0, 高性能设备推荐) |
|
||
**/
|
||
- (void)addPropertyMode:(FUBeautyPropertyMode)mode forKey:(FUModeKey)key;
|
||
|
||
@end
|
||
|
||
NS_ASSUME_NONNULL_END
|