| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612 |
- //
- // TiSDKInterface.h
- // TiSDK
- //
- // Created by Cat66 on 2018/5/10.
- // Copyright © 2018年 Tillusory Tech. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- #import <Foundation/Foundation.h>
- #import <OpenGLES/ES2/gl.h>
- /**
- * 初始化状态回调值
- */
- typedef struct InitStatus {
- NSInteger code ;
- NSString *message;
- } InitStatus;
- typedef void (^TiInitCallbackBlock)(InitStatus callBack);
- /***************************
- * TiSDK初始化
- ***************************/
- @interface TiSDK : NSObject
- /**
- * 初始化函数一
- *
- * @param key TiSDK鉴权Key
- */
- + (TiSDK *)init:(NSString *)key;
- /**
- * 初始化函数二
- *
- * @param key TiSDK在线鉴权Key
- * @param block 初始化回调block
- */
- + (TiSDK *)init:(NSString *)key CallBack:(TiInitCallbackBlock)block;
- /**
- * 初始化函数三,适配最新版本swift
- *
- * @param key TiSDK在线鉴权Key
- * @param block 初始化回调block
- */
- + (TiSDK *)initSDK:(NSString *)key CallBack:(TiInitCallbackBlock)block;
- /**
- * 初始化函数四
- *
- * @param license TiSDK离线鉴权License
- */
- + (TiSDK *)initOffline:(NSString *)license;
- /**
- * 资源文件(贴纸、礼物、水印)URL是否获取成功通知名称
- */
- #define TiResourceURLNotificationName @"TiResourceURLNotification"
- /**
- * 贴纸文件URL地址设置函数
- */
- + (void)setStickerUrl:(NSString *)url;
- /**
- * 贴纸文件URL地址获取函数
- */
- + (NSString *)getStickerURL;
- /**
- * 贴纸IconURL地址设置函数
- */
- + (void)setStickerThumbUrl:(NSString *)url;
- /**
- * 贴纸IconURL地址获取函数
- */
- + (NSString *)getStickerIconURL;
- /**
- * 礼物文件URL地址设置函数
- */
- + (void)setGiftUrl:(NSString *)url;
- /**
- * 礼物文件URL地址获取函数
- */
- + (NSString *)getGiftURL;
- /**
- * 礼物IconURL地址设置函数
- */
- + (void)setGiftThumbUrl:(NSString *)url;
- /**
- * 礼物IconURL地址获取函数
- */
- + (NSString *)getGiftIconURL;
- /**
- * 水印文件URL地址设置函数
- */
- + (void)setWatermarkUrl:(NSString *)url;
- /**
- * 水印文件URL地址获取函数
- */
- + (NSString *)getWatermarkURL;
- /**
- * 水印IconURL地址设置函数
- */
- + (void)setWatermarkThumbUrl:(NSString *)url;
- /**
- * 水印IconURL地址获取函数
- */
- + (NSString *)getWatermarkIconURL;
- /**
- * 面具文件URL地址设置函数
- */
- + (void)setMaskUrl:(NSString *)url;
- /**
- * 面具文件URL地址获取函数
- */
- + (NSString *)getMaskURL;
- /**
- * 面具IconURL地址设置函数
- */
- + (void)setMaskThumbUrl:(NSString *)url;
- /**
- * 面具IconURL地址获取函数
- */
- + (NSString *)getMaskIconURL;
- /**
- * 绿幕文件URL地址设置函数
- */
- + (void)setGreenScreenUrl:(NSString *)url;
- /**
- * 绿幕文件URL地址获取函数
- */
- + (NSString *)getGreenScreenURL;
- /**
- * 绿幕IconURL地址设置函数
- */
- + (void)setGreenScreenThumbUrl:(NSString *)url;
- /**
- * 绿幕IconURL地址获取函数
- */
- + (NSString *)getGreenScreenIconURL;
- /**
- * 模型文件沙盒路径
- */
- + (NSString *)getModelPath;
- /**
- * 打开/关闭日志
- */
- + (void)setLog:(BOOL)enable;
- @end
- /****************************
- * TiSDK渲染管理器
- ***************************/
- @interface TiSDKManager : NSObject
- // 视频帧格式
- typedef NS_ENUM(NSInteger, TiImageFormatEnum) {
- RGBA = 3,
- NV21 = 1,
- BGRA = 0,
- RGB = 2,
- NV12 = 4,
- I420 = 5
- };
- // 旋转角度
- typedef NS_ENUM(NSInteger, TiRotationEnum){
- CLOCKWISE_0 = 0,
- CLOCKWISE_90 = 90,
- CLOCKWISE_180 = 180,
- CLOCKWISE_270 = 270
- };
- // Filter类型
- typedef NS_ENUM(NSInteger, TiFilterEnum) {
- NO_FILTER = 0, // 无
- SKETCH_FILTER = 1, // 素描
- SOBELEDGE_FILTER = 2, // 黑边
- TOON_FILTER = 3, // 卡通
- EMBOSS_FILTER = 4, // 浮雕
- FILM_FILTER = 5, // 胶片
- PIXELLATION_FILTER = 6, // 马赛克
- HALFTONE_FILTER = 7, // 半色调
- CROSSHATCH_FILTER = 8, // 交叉线
- NASHVILLE_FILTER = 9, // 那舍尔
- COFFEE_FILTER = 10, // 咖啡
- CHOCOLATE_FILTER = 11, // 巧克力
- COCO_FILTER = 12, // 可可
- DELICIOUS_FILTER = 13, // 美味
- FIRSTLOVE_FILTER = 14, // 初恋
- FOREST_FILTER = 15, // 森林
- GLOSSY_FILTER = 16, // 光泽
- GRASS_FILTER = 17, // 禾草
- HOLIDAY_FILTER = 18, // 假日
- KISS_FILTER = 19, // 初吻
- LOLITA_FILTER = 20, // 洛丽塔
- MEMORY_FILTER = 21, // 回忆
- MOUSSE_FILTER = 22, // 慕斯
- NORMAL_FILTER = 23, // 标准
- OXGEN_FILTER = 24, // 氧气
- PLATYCODON_FILTER = 25, // 桔梗
- RED_FILTER = 26, // 赤红
- SUNLESS_FILTER = 27, // 冷日
- PINCH_DISTORTION_FILTER = 28, // 扭曲
- KUWAHARA_FILTER = 29, // 油画
- POSTERIZE_FILTER = 30, // 分色
- SWIRL_DISTORTION_FILTER = 31, // 漩涡
- VIGNETTE_FILTER = 32, // 光晕
- ZOOM_BLUR_FILTER = 33, // 眩晕
- POLKA_DOT_FILTER = 34, // 圆点
- POLAR_PIXELLATE_FILTER = 35, // 极坐标
- GLASS_SPHERE_REFRACTION_FILTER = 36, // 水晶球
- SOLARIZE_FILTER = 37, // 曝光
- INK_WASH_PAINTING_FILTER = 38, // 水墨
- ARABICA_FILTER = 39, // 阿拉比卡
- AVA_FILTER = 40, // 阿瓦
- AZREAL_FILTER = 41, // 艾瑟瑞尔
- BOURBON_FILTER = 42, // 波旁
- BYERS_FILTER = 43, // 拜尔斯
- CHEMICAL_FILTER = 44, // 化学
- CLAYTON_FILTER = 45, // 克莱顿
- CLOUSEAU_FILTER = 46, // 克卢索
- COBI_FILTER = 47, // 小新
- CONTRAIL_FILTER = 48, // 凝迹
- CUBICLE_FILTER = 49, // 隔间
- DJANGO_FILTER = 50, // 姜戈
- FUJI_REALA_FILTER = 90 // 真实
- };
- // Rock类型
- typedef NS_ENUM(NSInteger, TiRockEnum) {
- NO_ROCK = 0, // 无抖音特效
- DAZZLED_COLOR_ROCK = 1, // 炫彩抖动
- LIGHT_COLOR_ROCK = 2, // 轻彩抖动
- DIZZY_GIDDY_ROCK = 3, // 头晕目眩
- ASTRAL_PROJECTION_ROCK = 4, // 灵魂出窍
- BLACK_MAGIC_ROCK = 5, // 暗黑魔法
- VIRTUAL_MIRROR_ROCK = 6, // 虚拟镜像
- DYNAMIC_SPLIT_SCREEN_ROCK = 7, //动感分屏
- BLACK_WHITE_FILM_ROCK = 8, // 黑白电影
- GRAY_PETRIFACTION_ROCK = 9, // 瞬间石化
- BULGE_DISTORTION__ROCK = 10 // 魔法镜面
- };
- // Distortion类型
- typedef NS_ENUM(NSInteger, TiDistortionEnum) {
- NO_DISTORTION = 0, // 无
- ET_DISTORTION = 1, // 外星人
- PEAR_FACE_DISTORTION = 2, // 梨梨脸
- SLIM_FACE_DISTORTION = 3, // 瘦瘦脸
- SQUARE_FACE_DISTORTION = 4 // 方方脸
- };
- //// GreenScreen类型
- //typedef NS_ENUM(NSInteger, TiGreenScreenEnum) {
- // NO_GREEN_SCREEN = 0, // 无
- // STARRY_SKY_GREEN_SCREEN = 1, // 星空
- // CLASS_ROOM_GREEN_SCREEN = 2, // 教室
- // THE_BUND_GREEN_SCREEN=3, // 外滩
- // IMPERIAL_PALACE_GREEN_SCREEN=4 // 故宫
- //};
- // Makeup类型
- typedef NS_ENUM(NSInteger, TiMakeupEnum) {
- NO_MAKEUP = 0, // 无
- LIP_GLOSS_MAKEUP = 1, // 唇彩
- EYE_SHADWO_MAKEUP= 2, // 眼影
- BROW_PENCIL_MAKEUP = 3, // 描眉
- BLUSHER_MAKEUP = 4 // 腮红
- };
- + (TiSDKManager *)shareManager;
- /**
- * 纹理渲染接口函数
- *
- * @param texture2D 待渲染纹理
- * @param imageWidth 纹理宽度
- * @param imageHeight 纹理高度
- * @param rotation 纹理转为正向(home键向下)待旋转角度
- * @param isMirror 是否存在镜像
- *
- * @return 渲染后的纹理
- */
- - (GLuint)renderTexture2D:(GLuint)texture2D Width:(CGFloat)imageWidth Height:(CGFloat)imageHeight Rotation:(TiRotationEnum)rotation Mirror:(BOOL)isMirror;
- /**
- * 纹理渲染接口函数
- *
- * @param texture2D 待渲染纹理
- * @param imageWidth 纹理宽度
- * @param imageHeight 纹理高度
- * @param rotation 纹理转为正向(home键向下)待旋转角度
- * @param isMirror 是否存在镜像
- * @param faceNumber 人脸相关特效可支持的人脸数 [1, 5]
- *
- * @return 渲染后的纹理
- */
- - (GLuint)renderTexture2D:(GLuint)texture2D Width:(CGFloat)imageWidth Height:(CGFloat)imageHeight Rotation:(TiRotationEnum)rotation Mirror:(BOOL)isMirror FaceNumber:(int)faceNumber;
- /**
- * pixelBuffer渲染接口函数
- *
- * @param pixels 待渲染视频帧
- * @param imageWidth 纹理宽度
- * @param imageHeight 纹理高度
- * @param rotation 纹理转为正向(home键向下)待旋转角度
- * @param isMirror 是否存在镜像
- *
- */
- - (void)renderPixels:(unsigned char *)pixels Format:(TiImageFormatEnum)imageFormat Width:(CGFloat)imageWidth Height:(CGFloat)imageHeight Rotation:(TiRotationEnum)rotation Mirror:(BOOL)isMirror;
- /**
- * pixelBuffer渲染接口函数
- *
- * @param pixels 待渲染视频帧
- * @param imageWidth 纹理宽度
- * @param imageHeight 纹理高度
- * @param rotation 纹理转为正向(home键向下)待旋转角度
- * @param isMirror 是否存在镜像
- * @param faceNumber 人脸相关特效可支持的人脸数 [1, 5]
- *
- */
- - (void)renderPixels:(unsigned char *)pixels Format:(TiImageFormatEnum)imageFormat Width:(CGFloat)imageWidth Height:(CGFloat)imageHeight Rotation:(TiRotationEnum)rotation Mirror:(BOOL)isMirror FaceNumber:(int)faceNumber;
- /**
- * 开启/关闭美颜特效函数
- *
- * @param enable 是否开启美颜特效
- */
- - (void)setBeautyEnable:(BOOL)enable;
- /**
- * 设置美颜-美白特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setSkinWhitening:(int)param;
- /**
- * 设置美颜-磨皮特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setSkinBlemishRemoval:(int)param;
- /**
- * 设置美颜-饱和特效参数函数
- *
- * @param param [-50, 50]
- */
- - (void)setSkinSaturation:(int)param;
- /**
- * 设置美颜-粉嫩特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setSkinTenderness:(int)param;
- /**
- * 设置美颜-亮度特效参数函数
- *
- * @param param [-50, 50]
- */
- - (void)setSkinBrightness:(int)param;
- /**
- * 设置美颜-鲜明特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setSkinSharpness:(int)param;
- /**
- * 打开/关闭美型特效函数
- *
- * @param enable 是否打开美型特效
- */
- - (void)setFaceTrimEnable:(BOOL)enable;
- /**
- * 设置美型-大眼特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setEyeMagnifying:(int)param;
- /**
- * 设置美型-瘦脸特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setChinSlimming:(int)param;
- /**
- * 设置美型-下巴特效参数函数
- *
- * @param param [-50, 50]
- */
- - (void)setJawTransforming:(int)param;
- /**
- * 设置美型-额头特效参数函数
- *
- * @param param [-50, 50]
- */
- - (void)setForeheadTransforming:(int)param;
- /**
- * 设置美型-嘴型特效参数函数
- *
- * @param param [-50, 50]
- */
- - (void)setMouthTransforming:(int)param;
- /**
- * 设置美型-瘦鼻特效参数函数
- *
- * @param param [-50, 50]
- */
- - (void)setNoseMinifying:(int)param;
- /**
- * 设置美型-美牙特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setTeethWhitening:(int)param;
- /**
- * 设置美型-窄脸特效参数函数
- *
- * @param param [0, 100]
- */
- - (void)setFaceNarrowing:(int)param;
- /**
- * 设置美型-眼间距特效参数函数
- *
- * @param param [-50, 50]
- * 默认值为0
- * >0,缩小眼间距;<0,增大眼间距
- */
- - (void)setEyeSpacing:(int)param;
- /**
- * 设置美型-长鼻特效参数函数
- *
- * @param param [0, 100]
- * 默认值为0
- */
- - (void)setNoseElongating:(int)param;
- /**
- * 设置美型-眼角特效参数函数
- *
- * @param param [-50, 50]
- * 默认值为0
- */
- - (void)setEyeCorners:(int)param;
- /**
- * 切换贴纸函数
- *
- * @param stickerName 贴纸名称
- */
- - (void)setStickerName:(NSString *)stickerName;
- /**
- * 切换滤镜函数
- *
- * @param filterEnum 参考宏定义TiFilterEnum
- */
- - (void)setFilterEnum:(TiFilterEnum)filterEnum;
- /**
- * 切换滤镜并设置相应参数函数
- *
- * @param filterEnum 参考宏定义TiFilterEnum
- * @param param 滤镜参数
- */
- - (void)setFilterEnum:(TiFilterEnum)filterEnum Param:(int)param;
- /**
- * 设置Rock特效参数函数
- *
- * @param rockEnum 参考宏定义TiRockEnum
- */
- - (void)setRockEnum:(TiRockEnum)rockEnum;
- /**
- * 设置哈哈镜特效参数函数
- *
- * @param distortionEnum 参考宏定义TiDistortionEnum
- */
- - (void)setDistortionEnum:(TiDistortionEnum)distortionEnum;
- /**
- * 设置水印参数函数
- *
- * @param enable true: 开启 false: 关闭
- * @param x 水印左上角横坐标[0, 100]
- * @param y 水印右上角纵坐标[0, 100]
- * @param ratio 水印横向占据屏幕的比例[0, 100]
- */
- - (void)setWatermark:(BOOL)enable Left:(int)x Top:(int)y Ratio:(int)ratio FileName:(NSString *)fileName;
- /**
- * 设置绿幕特效参数函数
- *
- * @param greenScreenName 幕布名称
- */
- - (void)setGreenScreen:(NSString *)greenScreenName;
- /**
- * 设置礼物特效参数函数
- *
- * @param giftName 礼物名称
- */
- - (void)setGift:(NSString *)giftName;
- /**
- * 设置面具特效参数函数
- *
- * @param maskName 面具名称
- */
- - (void)setMask:(NSString *)maskName;
- /**
- * 设置美妆特效参数函数
- *
- * @param makeupName 美妆名称
- */
- - (void)setMakeup:(NSString *)makeupName;
- /**
- * 美妆特效开关函数
- *
- * @param enable 是否开启美妆
- */
- - (void)setMakeupEnable:(bool)enable;
- /**
- * 唇彩特效开关函数
- *
- * @param name 唇彩特效名称
- */
- - (void)setLipGloss:(NSString*)name;
- /**
- * 眼影特效开关函数
- *
- * @param name 眼影特效名称
- */
- - (void)setEyeShadow:(NSString*)name;
- /**
- * 眉毛特效开关函数
- *
- * @param name 眉毛特效名称
- */
- - (void)setBrowPencil:(NSString*)name;
- /**
- * 腮红特效开关函数
- *
- * @param enable 腮红特效名称
- */
- - (void)setBlusher:(NSString*)name;
- /**
- * 渲染特效开关
- *
- * @param enable YES是打开渲染;NO是关闭开关
- */
- -(void)setRenderEnable:(bool)enable;
- /**
- * 资源释放函数
- */
- - (void)destroy;
- /**
- * 获取人脸中心点的坐标
- */
- -(CGPoint)getFaceCenter;
- /**
- * 是否检测到人脸
- */
- -(int)isFaceDected;
- @end
|