123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- //
- // BDFaceAdjustParamsModel.m
- // FaceSDKSample_IOS
- //
- // Created by Zhang,Jian(MBD) on 2020/12/3.
- // Copyright © 2020 Baidu. All rights reserved.
- //
- #import "BDFaceAdjustParamsModel.h"
- #import "BDFaceAdjustParamsItem.h"
- static NSString *const minLightIntensityString = @"最小光照值";
- static NSString *const maxLightIntensityString = @"最大光照值";
- static NSString *const ambiguityString = @"模糊度";
- static NSString *const leftEyeOcclusionString = @"左眼";
- static NSString *const rightEyeOcclusionString = @"右眼";
- static NSString *const noseOcclusionString = @"鼻子";
- static NSString *const mouthOcclusionString = @"嘴巴";
- static NSString *const leftFaceOcclusionString = @"左脸颊";
- static NSString *const rightFaceOcclusionString = @"右脸颊";
- static NSString *const lowerJawOcclusionString = @"下巴";
- static NSString *const upAndDownAngleString = @"俯仰角";
- static NSString *const leftAndRightAngleString = @"左右角";
- static NSString *const spinAngleString = @"旋转角";
- static NSString *const BDFaceSelectTypeNormalString = @"正常";
- static NSString *const BDFaceSelectTypeStrictString = @"严格";
- static NSString *const BDFaceSelectTypeLooseString = @"宽松";
- static NSString *const BDFaceSelectTypeCustomString = @"自定义";
- @implementation BDFaceAdjustParamsModel
- + (NSMutableArray *)loadItemsArray:(BDFaceAdjustParams *)config
- recorverText:(NSString *)text
- selectType:(BDFaceSelectType)type {
- NSMutableArray *array = [NSMutableArray array];
- [array addObject:[self lightArray:config]];
- [array addObject:[self occlusionArray:config]];
- [array addObject:[self positionArray:config]];
- if (type != BDFaceSelectTypeCustom) {
- [array addObject:[self recoverArray:text]];
- }
-
- return array;
- }
- /// 光照相关
- + (NSMutableArray *)lightArray:(BDFaceAdjustParams *)config {
- NSMutableArray *section1 = [NSMutableArray array];
- {
- /// 最小光照值
- BDFaceAdjustParamsItem *item = [[BDFaceAdjustParamsItem alloc] init];
- item.itemTitle = minLightIntensityString;
- item.minValue = 20.0f;
- item.maxValue = 60.0f;
- item.interval = 1.0f;
- item.currentValue = config.minLightIntensity;
- item.configDetailType = BDFaceAdjustParamsTypeMinLightIntensity;
- [section1 addObject:item];
- }
- {
- /// 最大光照值
- BDFaceAdjustParamsItem *item = [[BDFaceAdjustParamsItem alloc] init];
- item.itemTitle = maxLightIntensityString;
- item.minValue = 200.0f;
- item.maxValue = 240.0f;
- item.interval = 1.0f;
- item.currentValue = config.maxLightIntensity;
- item.configDetailType = BDFaceAdjustParamsTypeMaxLightIntensity;
- [section1 addObject:item];
- }
- {
- /// 模糊度
- BDFaceAdjustParamsItem *item = [[BDFaceAdjustParamsItem alloc] init];
- item.itemTitle = ambiguityString;
- item.minValue = 0.1f;
- item.maxValue = 0.9f;
- item.interval = 0.05f;
- item.currentValue = config.ambiguity;
- item.configDetailType = BDFaceAdjustParamsTypeAmbiguity;
- [section1 addObject:item];
- }
- return section1;
- }
- + (NSMutableArray *)occlusionArray:(BDFaceAdjustParams *)config {
- NSMutableArray *section2 = [NSMutableArray array];
- {
- /// 左眼
- BDFaceAdjustParamsItem *item1 = [[BDFaceAdjustParamsItem alloc] init];
- item1.itemTitle = leftEyeOcclusionString;
- item1.currentValue = config.leftEyeOcclusion;
- item1.configDetailType = BDFaceAdjustParamsTypeLeftEyeOcclusion;
- [section2 addObject:item1];
- }
-
- {
- /// 右眼
- BDFaceAdjustParamsItem *item2 = [[BDFaceAdjustParamsItem alloc] init];
- item2.itemTitle = rightEyeOcclusionString;
- item2.currentValue = config.rightEyeOcclusion;
- item2.configDetailType = BDFaceAdjustParamsTypeRightEyeOcclusion;
- [section2 addObject:item2];
- }
- {
- /// 鼻子
- BDFaceAdjustParamsItem *item3 = [[BDFaceAdjustParamsItem alloc] init];
- item3.itemTitle = noseOcclusionString;
- item3.currentValue = config.noseOcclusion;
- item3.configDetailType = BDFaceAdjustParamsTypeNoseOcclusion;
- [section2 addObject:item3];
- }
- {
- /// 嘴巴
- BDFaceAdjustParamsItem *item4 = [[BDFaceAdjustParamsItem alloc] init];
- item4.itemTitle = mouthOcclusionString;
- item4.currentValue = config.mouthOcclusion;
- item4.configDetailType = BDFaceAdjustParamsTypeMouthOcclusion;
- [section2 addObject:item4];}
- {
- BDFaceAdjustParamsItem *item5 = [[BDFaceAdjustParamsItem alloc] init];
- item5.itemTitle = leftFaceOcclusionString;
- item5.currentValue = config.leftFaceOcclusion;
- item5.configDetailType = BDFaceAdjustParamsTypeLeftFaceOcclusion;
- [section2 addObject:item5];
- }
- {
- BDFaceAdjustParamsItem *item6 = [[BDFaceAdjustParamsItem alloc] init];
- item6.itemTitle = rightFaceOcclusionString;
- item6.currentValue = config.rightFaceOcclusion;
- item6.configDetailType = BDFaceAdjustParamsTypeRightFaceOcclusion;
- [section2 addObject:item6];
- }
- {
- BDFaceAdjustParamsItem *item7 = [[BDFaceAdjustParamsItem alloc] init];
- item7.itemTitle = lowerJawOcclusionString;
- item7.currentValue = config.lowerJawOcclusion;
- item7.configDetailType = BDFaceAdjustParamsTypeLowerJawOcclusion;
- [section2 addObject:item7];
- }
- /// 设置最大最小值和间隔
- for (BDFaceAdjustParamsItem *each in section2) {
- each.minValue = 0.3f;
- each.maxValue = 1.0f;
- each.interval = 0.05f;
- }
- return section2;
- }
- + (NSMutableArray *)positionArray:(BDFaceAdjustParams *)config {
- NSMutableArray *section3 = [NSMutableArray array];
- {
- // 俯仰角
- BDFaceAdjustParamsItem *item1 = [[BDFaceAdjustParamsItem alloc] init];
- item1.itemTitle = upAndDownAngleString;
- item1.currentValue = config.upAndDownAngle;
- item1.configDetailType = BDFaceAdjustParamsTypeUpAndDownAngle;
- [section3 addObject:item1];
- }
- {
- /// 左右角
- BDFaceAdjustParamsItem *item2 = [[BDFaceAdjustParamsItem alloc] init];
- item2.itemTitle = leftAndRightAngleString;
- item2.currentValue = config.leftAndRightAngle;
- item2.configDetailType = BDFaceAdjustParamsTypeLeftAndRightAngle;
- [section3 addObject:item2];
-
- }
- {
- /// 旋转角
- BDFaceAdjustParamsItem *item3 = [[BDFaceAdjustParamsItem alloc] init];
- item3.itemTitle = spinAngleString;
- item3.currentValue = config.spinAngle;
- item3.configDetailType = BDFaceAdjustParamsTypeSpinAngle;
- [section3 addObject:item3];
- }
- for (BDFaceAdjustParamsItem *each in section3) {
- each.minValue = 10.0f;
- each.maxValue = 50.0f;
- each.interval = 1.0f;
- }
- return section3;
- }
- + (NSMutableArray *)recoverArray:(NSString *)text {
- NSMutableArray *section = [NSMutableArray array];
- BDFaceAdjustParamsItem *item = [[BDFaceAdjustParamsItem alloc] init];
- item.itemTitle = text;
- item.contentType = BDFaceAdjustParamsContentTypeRecoverToNormal;
- [section addObject:item];
-
- return section;
- }
- //+ (BDFaceAdjustParams *)getConfig:(NSArray *)array {
- // BDFaceAdjustParams *config = [BDFaceAdjustParams new];
- // for (NSArray *subArray in array) {
- // if (subArray && [subArray isKindOfClass:[NSArray class]]) {
- // for (BDFaceAdjustParamsItem *item in subArray) {
- // switch (item.configDetailType) {
- // /// 光照
- // case BDFaceAdjustParamsTypeMinLightIntensity:
- // {
- // config.minLightIntensity = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeMaxLightIntensity:
- // {
- // config.maxLightIntensity = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeAmbiguity:
- // {
- // config.ambiguity = item.currentValue;
- // }
- // break;
- // /// 遮挡
- // case BDFaceAdjustParamsTypeLeftEyeOcclusion:
- // {
- // config.leftEyeOcclusion = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeRightEyeOcclusion:
- // {
- // config.rightFaceOcclusion = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeNoseOcclusion:
- // {
- // config.noseOcclusion = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeMouthOcclusion:
- // {
- // config.mouthOcclusion = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeLeftFaceOcclusion:
- // {
- // config.leftFaceOcclusion = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeRightFaceOcclusion:
- // {
- // config.rightFaceOcclusion = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeLowerJawOcclusion:
- // {
- // config.lowerJawOcclusion = item.currentValue;
- // }
- // break;
- // /// 姿势
- // case BDFaceAdjustParamsTypeUpAndDownAngle:
- // {
- // config.upAndDownAngle = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeLeftAndRightAngle:
- // {
- // config.leftAndRightAngle = item.currentValue;
- // }
- // break;
- // case BDFaceAdjustParamsTypeSpinAngle:
- // {
- // config.spinAngle = item.currentValue;
- // }
- // break;
- // default:
- // break;
- // }
- // }
- // }
- // }
- // return config;
- //}
- + (NSString *)getSelectTypeString:(BDFaceSelectType)type {
- NSString *value = BDFaceSelectTypeNormalString;
- switch (type) {
- case BDFaceSelectTypeStrict:
- {
- value = BDFaceSelectTypeStrictString;
- }
- break;
- case BDFaceSelectTypeLoose:
- {
- value = BDFaceSelectTypeLooseString;
- }
- break;
- case BDFaceSelectTypeCustom:
- {
- value = BDFaceSelectTypeCustomString;
- }
- break;
- default:
- break;
- }
- return value;
- }
- @end
|