/// /// /** * 高级美颜配置 */ declare interface AdvanceBeauty { /** 去眼袋系数 */ pouch?: number; /** 淡化法令纹系数 */ nasolabialFolds?: number; /** 设置白牙系数 */ whiteTeeth?: number; /** 设置口红系数 */ lipstick?: number; /** 设置腮红系数 */ blush?: number; /** 设置口红色相系数 */ lipstickColorParam?: number; /** 设置口红饱和度系数 */ lipstickGlossParam?: number; /** 设置口红明度系数 */ lipstickBrightnessParam?: number; /** 设置亮眼系数 */ brightenEye?: number; /** 设置红润系数 */ skinRed?: number; /** 设置去皱纹系数 */ wrinkles?: number; /** 设置去暗沉系数 */ brightenFace?: number; } declare namespace Assets { export { kResMakeupEyeBall, kResMakeupMouth, kResMakeupEyeBrow, kResMakeupEyeShadow, kResMakeupEyeLiner, kResMakeupEyeLash, kResMakeupBlush, kResMakeupWhole, kResMakeupHighLight, kAnimojiRes, kResLut, kResSticker, QueenAssets } } export { Assets } /** * 基础美颜配置 */ declare interface BasicBeauty { /** 磨皮系数 */ skinBuffing?: number; /** 锐化系数 */ sharpen?: number; /** 美白系数 */ whitening?: number; } /** * 美颜参数 */ declare interface BeautyParams { /** 基础美颜设置 */ basicBeauty?: BasicBeauty; /** 高级美颜设置 */ advanceBeauty?: AdvanceBeauty; /** 脸型美颜设置 */ faceShapeBeauty?: FaceShapeBeauty; /** 化妆美颜设置 */ makeupBeauty?: MakeupBeautyItem[]; /** 身体美颜设置 */ bodyShapeBeauty?: BodyShapeBeauty; /** 滤镜设置 */ lutFilter?: LutFilter[]; /** 贴纸设置 */ material?: Material[]; /** 抠图背景处理设置 */ segmentBackgroundProcess?: SegmentBackgroundProcess; /** 绿幕背景抠图设置 */ greenScreenSegment?: GreenScreenSegment; /** 设置抠图背景图片 */ setSegmentBackgroundImage?: SetSegmentBackgroundImage; } declare interface BodyShapeBeauty { /** * 全身 */ fullBody?: number; /** * 长腿 */ longLag?: number; /** * 小头 */ smallHead?: number; /** * 瘦腿 */ thinLag?: number; /** * 脖子 */ longNeck?: number; /** * 瘦腰 */ thinWaist?: number; /** * 丰胸 */ enhanceBreast?: number; /** * 手臂 */ thinArm?: number; } /** * 脸型美颜配置 */ declare interface FaceShapeBeauty { /** 颧骨微调, 值的范围[0,1], 默认为0.0 */ cutCheek?: number; /** 削脸效果, 值的范围[0,1], 默认为0.0 */ cutFace?: number; /** 瘦脸效果, 值的范围[0,1], 默认为0.0 */ thinFace?: number; /** 脸部拉长, 值的范围[0,1], 默认为0.0 */ longFace?: number; /** 下巴缩短, 值的范围[-1, 1], 默认为0.0 */ lowerJaw?: number; /** 下巴拉长, 值的范围[-1, 1], 默认为0.0 */ higherJaw?: number; /** 瘦下巴, 值的范围[0,1], 默认为0.0 */ thinJaw?: number; /** 瘦下颌, 值的范围[0,1], 默认为0.0 */ thinMandible?: number; /** 大眼效果, 值的范围[0,1], 默认为0.0 */ bigEye?: number; /** 眼角调整1, 值的范围[0,1], 默认为0.0 */ eyeAngle1?: number; /** 眼距调整, 值的范围[0,1], 默认为0.0 */ canthus?: number; /** 调整眼距, 值的范围[-1, 1], 默认为0.0 */ canthus1?: number; /** 眼角调整2, 值的范围[-1, 1], 默认为0.0 */ eyeAngle2?: number; /** 眼睛高度调整, 值的范围[-1, 1], 默认为0.0 */ eyeTDAngle?: number; /** 瘦鼻效果, 值的范围[0,1], 默认为0.0 */ thinNose?: number; /** 鼻翼缩小, 值的范围[0,1], 默认为0.0 */ nosewing?: number; /** 鼻长调整, 值的范围[-1, 1], 默认为0.0 */ nasalHeight?: number; /** 鼻尖高度调整, 值的范围[-1, 1], 默认为0.0 */ noseTipHeight?: number; /** 唇宽调整, 值的范围[-1, 1], 默认为0.0 */ mouthWidth?: number; /** 唇高调整, 值的范围[-1, 1], 默认为0.0 */ mouthHigh?: number; /** 人中调整, 值的范围[-1, 1], 默认为0.0 */ philtrum?: number; /** 发际线, 值的范围[-1, 1], 默认为0.0 */ hairLine?: number; /** 嘴角上扬(微笑),值的范围[0,1],默认0 */ smile?: number; } /** * 设置绿幕抠图 */ declare interface GreenScreenSegment { /** 背景处理方式 */ type?: kBackgroundProcessType; /** 是否开启蓝幕抠图 */ blueScreenEnabled?: boolean; /** 幕布敏感度[1,10],默认1 */ threshold?: number; /** * 是否根据环境动态计算幕布敏感度 * 为true时调节参数threshold失效 * 为false时调节参数threshold生效 */ autoThresholdEnabled?: boolean; /** 输出灰色遮罩 */ outputGrayMask?: boolean; /** 资源Url */ backgroundUrl?: string; /** 已载入资源的的文件路径 */ backgroundPath?: string; } declare class Index extends QueenEngine { constructor(); static QueenEngineBase: typeof QueenEngineBase; static QueenEngineLite: typeof QueenEngineLite; static QueenEnginePro: typeof QueenEnginePro; static QueenEngineFull: typeof QueenEngineFull; static QueenEngineWorker: typeof QueenEngineWorker; static Assets: typeof Assets; static kQueenBeautyType: typeof kQueenBeautyType; static kQueenBeautyParams: typeof kQueenBeautyParams; static kBackgroundProcessType: typeof kBackgroundProcessType; static kQueenBeautyMakeupType: typeof kQueenBeautyMakeupType; static kQueenBeautyFaceShapeType: typeof kQueenBeautyFaceShapeType; static kQueenBeautyBlend: typeof kQueenBeautyBlend; static kSegmentPerformanceMode: typeof kSegmentPerformanceMode; static kQueenModelShapeType: typeof kQueenModelShapeType; static kBackendType: typeof kBackendType; static kQueenBeautyBodyShapeType: typeof kQueenBeautyBodyShapeType; static kQueenVersion: typeof kQueenVersion; } export default Index; /** * Animoji */ declare enum kAnimojiRes { /** * 熊 */ BrownBear = 0, /** * 钉三多 */ Ding3Duo = 1, /** * 南瓜 */ Pumpkin = 2, /** * 兔子 */ Rabbit = 3, /** * 小熊猫 */ RedPanda = 4, /** * 三星堆 */ SanXingDui = 5, /** * 淘公仔 */ TaoGongZai = 6 } export declare enum kBackendType { Auto = 0, WebGL = 1, WebGPU = 2, Max = 3 } /** * 背景处理模式 */ export declare enum kBackgroundProcessType { kBackgroundBlur = 0, kBackgroundTransparent = 1, kBackgroundNormal = 2 } declare enum kLogLevel { kLogNone = 0, kLogError = 1, kLogWarning = 2, kLogInfo = 3, kLogDebug = 4 } export declare enum kQueenBeautyBlend { /** 正常 */ Normal = 0, /** 变亮 */ Lighten = 1, /** 变暗 */ Darken = 2, /** 正片叠底 */ Multiply = 3, /** 划分 */ Divide = 4, /** 平均 */ Average = 5, /** 线性减淡 */ Add = 6, /** 减去 */ Subtract = 7, /** 差值 */ Difference = 8, /** 反向 */ Negation = 9, /** 排除 */ Exclusion = 10, /** 滤色 */ Screen = 11, /** 叠加 */ Overlay = 12, /** 柔光 */ SoftLight = 13, /** 强光 */ HardLight = 14, /** 颜色减淡 */ ColorDodge = 15, /** 颜色加深 */ ColorBurn = 16, /** 线性减淡 */ LinearDodge = 17, /** 线性加深 */ LinearBurn = 18, /** 线性光 */ LinearLight = 19, /** 亮光 */ VividLight = 20, /** 点光 */ PinLight = 21, /** 实色混合 */ HardMix = 22, /** 反射 */ Reflect = 23, /** 发光 */ Glow = 24, /** 颗粒 */ Phoenix = 25, /** 色相 */ Hue = 26, /** 饱和度 */ Saturation = 27, /** 明度 */ Luminosity = 28, /** 颜色 */ Color = 29, /** 曲线 */ Curve = 30, /** * 视觉融合模式 */ LabMix = 31, /** 最大值 */ Max = 32 } /** * 美体类型 */ export declare enum kQueenBeautyBodyShapeType { /** 全身,值的范围[-1,1],默认0 */ /**** * Feature:Body * Range:[-1,1] */ FullBody = 0, /** 长腿,值的范围[-1,1],默认0 */ /**** * Feature:Leg * Range:[-1,1] */ LongLag = 1, /** 小头,值的范围[-1,1],默认0 */ /**** * Feature:Head * Range:[-1,1] */ SmallHead = 2, /** 瘦腿,值的范围[-1,1],默认0 */ /**** * Feature:ThinLag * Range:[-1,1] */ ThinLag = 3, /** 脖子,值的范围[-1,1],默认0 */ /**** * Feature:neck * Range:[-1,1] */ LongNeck = 4, /** 瘦腰,值的范围[-1,1],默认0 */ /**** * Feature:Thin Waist * Range:[-1,1] */ ThinWaist = 5, /** 丰胸,值的范围[-1,1],默认0 */ /**** * Feature:Enhance Breast * Range:[-1,1] */ EnhanceBreast = 6, /** 手臂,值的范围[-1,1],默认0 */ /**** * Feature:Thin Arm * Range:[-1,1] */ ThinArm = 7, /** 最大值 */ /**** * Body Shaping Type count. */ MAX = 8 } export declare enum kQueenBeautyFaceShapeType { /** 颧骨,值的范围[0,1],默认0 */ CutCheek = 0, /** 削脸,值的范围[0,1],默认0 */ CutFace = 1, /** 瘦脸,值的范围[0,1],默认0 */ ThinFace = 2, /** 脸长,值的范围[0,1],默认0 */ LongFace = 3, /** 下巴缩短,值的范围[-1,1],默认0 */ LowerJaw = 4, /** 下巴拉长,值的范围[-1,1],默认0 */ HigherJaw = 5, /** 瘦下巴,值的范围[0,1],默认0 */ ThinJaw = 6, /** 瘦下颌,值的范围[0,1],默认0 */ ThinMandible = 7, /** 大眼,值的范围[0,1],默认0 */ BigEye = 8, /** 眼角1,值的范围[0,1],默认0 */ EyeAngle1 = 9, /** 眼距,值的范围[-1,1],默认0 */ Canthus = 10, /** 拉宽眼距,值的范围[-1,1],默认0 */ Canthus1 = 11, /** 眼角2,值的范围[-1,1],默认0 */ EyeAngle2 = 12, /** 眼睛高度,值的范围[-1,1],默认0 */ EyeTDAngle = 13, /** 瘦鼻,值的范围[0,1],默认0 */ ThinNose = 14, /** 鼻翼,值的范围[0,1],默认0 */ Nosewing = 15, /** 鼻长,值的范围[-1,1],默认0 */ NasalHeight = 16, /** 鼻头长,值的范围[-1,1],默认0 */ NoseTipHeight = 17, /** 唇宽,值的范围[-1,1],默认0 */ MouthWidth = 18, /** 嘴唇大小,值的范围[-1,1],默认0 */ MouthSize = 19, /** 唇高,值的范围[-1,1],默认0 */ MouthHigh = 20, /** 人中,值的范围[-1,1],默认0 */ Philtrum = 21, /** 发际线,值的范围[-1,1],默认0 */ HairLine = 22, /** 嘴角上扬(微笑),值的范围[0,1],默认0 */ Smile = 23, /** 最大值 */ MAX = 24 } export declare enum kQueenBeautyMakeupType { /** 整妆 */ Whole = 0, /** 高光 */ Highlight = 1, /** 美瞳 */ Eyeball = 2, /** 口红 */ Mouth = 3, /** 卧蚕 */ Wocan = 4, /** 眉毛 */ EyeBrow = 5, /** 腮红 */ Blush = 6, /** 眼影 */ EyeShadow = 7, /** 眼线 */ Eyeliner = 8, /** 睫毛 */ Eyelash = 9, /** 最大值 */ MakeupMax = 10 } export declare enum kQueenBeautyParams { /** 基础美颜参数项,基础美颜默认打开,不需要手动调用打开接口 磨皮,值的范围[0,1] ,默认0 */ SkinBuffing = 1, /** 基础美颜参数项,基础美颜默认打开,不需要手动调用打开接口 锐化,值的范围[0,1] ,默认0 */ Sharpen = 2, /** 基础美颜参数项,基础美颜默认打开,不需要手动调用打开接口 美白,值的范围[0,1] ,默认0 */ Whitening = 3, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 去眼袋,值的范围[0,1],默认0 */ Pouch = 4, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 去法令纹,值的范围[0,1],默认0 */ NasolabialFolds = 5, /** 色卡滤镜参数项,需要先打开QueenBeautyTypeLUT 项 色卡滤镜强度,值的范围[0,1],默认0 */ LUT = 6, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 白牙,值的范围[0,1],默认0 */ WhiteTeeth = 7, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 口红,值的范围[0,1],默认0 */ Lipstick = 8, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 腮红,值的范围[0,1],默认0 */ Blush = 9, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 口红色相 [-0.5,0.5], 默认0 */ LipstickColorParam = 10, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 口红饱和度[0,1], 默认0 */ LipstickGlossParam = 11, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 口红明度[0,1], 默认0 */ LipstickBrightnessParam = 12, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 亮眼[0,1], 默认0 */ BrightenEye = 13, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 红润[0,1], 默认0 */ SkinRed = 14, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 祛皱纹[0,1], 默认0 */ Wrinkles = 15, /** 脸部美颜参数项,需要先打开QueenBeautyTypeFaceBuffing 项 祛暗沉[0,1], 默认0 */ BrightenFace = 16, /** 脸部美颜参数项,需要先打开 QueenBeautyTypeAutoFilter 项 智能美颜亮度调节比例[-1,1] */ AutoLRate = 17, /** 脸部美颜参数项,需要先打开 QueenBeautyTypeAutoFilter 项 智能美颜色度a调节比例[-1,1] */ AutoARate = 18, /** 脸部美颜参数项,需要先打开 QueenBeautyTypeAutoFilter 项 智能美颜色度b调节比例[-1,1] */ AutoBRate = 19 } export declare enum kQueenBeautyType { SkinBuffing = 0, FaceBuffing = 1, Makeup = 2, /** 美型(主要包括瘦脸、瘦下巴、大眼、瘦鼻、美唇等) */ FaceShape = 3, /** 基础美颜(美白) */ SkinWhiting = 4, /** 滤镜,当设置滤镜后,可以指定一个滤镜图片 */ LUT = 5, /** 背景处理,实景抠图,使背景虚化 */ BackgroundProcess = 6, /** 功能类型: 智能美颜 */ AutoFilter = 7, /** 功能类型: 美体 */ BodyShape = 8, /** 功能类型: 手势检测 */ HandGestureDetect = 9, /** 最大值 */ Max = 10 } /** * 抠图输入图像类型 */ export declare enum kQueenModelShapeType { /** * 无抠图 */ None = 0, /** * 横向图 */ Horizontal = 1, /** * 竖向图 */ Vertical = 2, /** * 横向图和竖向图 */ Both = 3, Max = 4 } /** * Queen版本 */ export declare enum kQueenVersion { Lite = 0, Advance = 1, Pro = 2, Full = 3 } /** * 滤镜资源 */ declare enum kResLut { /** * 复古 */ M1 = 0, /** * 灰调 */ M2 = 1, /** * 青阶 */ M3 = 2, /** * 蓝调 */ M4 = 3, /** * 暗红 */ M5 = 4, /** * 暗淡 */ M6 = 5, /** * 灰橙 */ M7 = 6, /** * 通透 */ M8 = 7, /** * 高调 */ PF1 = 8, /** * 富士 */ PF2 = 9, /** * 暖色 */ PF3 = 10, /** * 柯达 */ PF4 = 11, /** * 复古 */ PF5 = 12, /** * 反转 */ PF6 = 13, /** * 红外 */ PF7 = 14, /** * 宝丽来 */ PF8 = 15, /** * 禄来 */ PF9 = 16, /** * 工业 */ PFA = 17, /** * 灰阶 */ PFB = 18, /** * 白阶 */ PFC = 19, /** * 暗调 */ PI4 = 20, /** * 影调 */ PL1 = 21, /** * 清透 */ PI1 = 22, /** * 暮晚 */ PI2 = 23, /** * 秋色 */ PI3 = 24, /** * 早樱 */ PL2 = 25, /** * 春芽 */ PL3 = 26, /** * 明媚 */ PL4 = 27, /** * 小森林 */ PJ1 = 28, /** * 童年 */ PJ2 = 29, /** * 午后 */ PJ3 = 30, /** * 花雾 */ PJ4 = 31, /** * 白桃 */ Delta = 32, /** * 林间 */ Electric = 33, /** * 盐系 */ Faded = 34, /** * 蓝雾 */ Slowlived = 35, /** * 雨后 */ Urbex = 36, /** * 温暖 */ Warm = 37, /** * 蓝霜 */ F4 = 38, /** * 尤加利 */ F5 = 39, /** * 东京 */ Tokoyo = 40, /** * 济州岛 */ F1 = 41, /** * 雪山 */ F2 = 42, /** * 布达佩斯 */ F3 = 43, /** * 老街 */ F6 = 44, /** * 咖啡 */ F7 = 45, /** * 质感 */ PV1 = 46, /** * 天色 */ PV2 = 47, /** * 清新 */ PV3 = 48, /** * 雾气 */ PV4 = 49, /** * 高调 */ PV5 = 50, /** * 黑白 */ PV6 = 51, /** * 柔和 */ A1 = 52, /** * 暗调 */ A2 = 53, /** * 青空 */ A3 = 54, /** * 蓝光 */ A4 = 55, /** * 艳丽 */ A5 = 56, /** * 哑光 */ A6 = 57 } /** * 美妆腮红 */ declare enum kResMakeupBlush { /** * 无辜 */ BlushWuGu = 0, /** * 茶艺 */ ChaYi = 1, /** * 初恋 */ ChuLian = 2, /** * 纯情 */ ChunQing = 3, /** * 奇迹 */ QiJi = 4, /** * 少女 */ ShaoNv = 5 } /** * 美妆美瞳 */ declare enum kResMakeupEyeBall { /** * 比目鱼 */ BiMuYu = 0, /** * 灵静 */ LingJing = 1, /** * 礼物 */ LiWu = 2, /** * 美杜莎 */ MeiDuSha = 3, /** * 利朗达 */ MiLanDa = 4, /** * 灵梦超 */ NingMengCao = 5, /** * 圣灵 */ SenLin = 6, /** * 四叶草 */ SiYeCao = 7, /** * 万花筒 */ WanHuaTong = 8 } /** * 美妆眉毛 */ declare enum kResMakeupEyeBrow { /** * 标准眉 */ BiaoZhunMei = 0, /** * 粗平眉 */ CuPingMei = 1, /** * 罥烟眉 */ JuanYanMei = 2, /** * 流星眉 */ LiuXingMei = 3, /** * 柳叶眉 */ LiuYeMei = 4, /** * 秋波眉 */ QiuBoMei = 5, /** * 弯月眉 */ WanYueMei = 6, /** * 新月眉 */ XinYueMei = 7, /** * 野生眉 */ YeShengMei = 8 } /** * 美妆睫毛 */ declare enum kResMakeupEyeLash { /** * 沉静 */ ChenJing = 0, /** * 活泼 */ HuoPo = 1, /** * 基础 */ JiChu = 2, /** * 可爱 */ KeAi = 3, /** * 灵动 */ LingDong = 4, /** * 少女 */ ShaoNv = 5, /** * 无辜 */ WuGu = 6, /** * 野生 */ YeSheng = 7, /** * 知性 */ ZhiXing = 8 } /** * 美妆眼线 */ declare enum kResMakeupEyeLiner { /** * 大眼 */ DaYan = 0, /** * 鬼马 */ GuiMa = 1, /** * 卷翘 */ JuanQiao = 2, /** * 可爱 */ KeAi = 3, /** * 灵动 */ LingDong = 4, /** * 气质 */ QiZhi = 5, /** * 温柔 */ WenRou = 6, /** * 无辜 */ WuGu = 7, /** * 小野猫 */ XiaoYeMao = 8 } /** * 美妆眼影 */ declare enum kResMakeupEyeShadow { /** * 大地色 */ DaDiSe = 0, /** * 方糖粉 */ FangTangFen = 1, /** * 复古色 */ FuGuSe = 2, /** * 活力橘 */ HuoLiJu = 3, /** * 金棕色 */ JinZongSe = 4, /** * 朋克棕 */ PengKeZong = 5, /** * 星光粉 */ XingGuangFen = 6, /** * 烟粉色 */ YanFenSe = 7, /** * 野蔷薇 */ YeQiangWei = 8 } /** * 美妆高光 */ declare enum kResMakeupHighLight { Highlight = 0 } /** * 美妆口红 */ declare enum kResMakeupMouth { /** * 暗夜紫 */ AnYeZi = 0, /** * 赤豆沙 */ ChiDouSha = 1, /** * 复古色 */ FuGuSe = 2, /** * 鬼魅红 */ GuiMeiHong = 3, /** * 浆果色 */ JiangGuoSe = 4, /** * 南瓜色 */ NanGuaSe = 5, /** * 石榴红 */ ShiLiuHong = 6, /** * ShipShape */ ShipShape = 7, /** * StandOut */ StandOut = 8 } /** * 美妆整妆 */ declare enum kResMakeupWhole { /** * 活力 */ HuoLi = 0, /** * 基础 */ JiChu = 1, /** * 魅惑 */ MeiHuo = 2, /** * 梅子 */ MeiZi = 3, /** * 蜜桃 */ MiTao = 4, /** * */ NaiJu = 5, /** * 兴奋 */ XingFen = 6, /** * 优雅 */ YouYa = 7, /** * 元气少女 */ YuanQiShaoNv = 8 } /** * 贴纸资源 */ declare enum kResSticker { ILoveChina = 0, HongXing = 1, HuDieJie = 2, MiLaoShu = 3, LuJiao = 4, KuaiLeXingQiu = 5, KeAi = 6, DaiMoJing1 = 0, MaoZi = 0, DaiMoJing2 = 0, XiaoKeAi = 0, XiaRiXiGua = 0, XiaoMaoMi = 0, NvWang = 0, DanGao = 0, MiaoSha = 0, NianHuoJie = 0, MianDanFanJu = 0, ZhouNianQing = 0, ShiShen = 0, Com = 0, Gdp = 0, DiaoBao = 0, WuMei = 0, Icon = 0, CaiHong = 0, DaHuZi1 = 0, ShouZhang = 0, HeiGuo = 0, BBTV = 0, FenDou = 0, HongSheng = 0, XiZhuang = 0, MeiHuo = 0, Money = 0, BoLiXin = 0, KPI = 0, FenNu = 0, XiaoXingXing = 0, LiWu = 0, QueShen = 0, MaoMi2 = 0, HaiXiu = 0, ChiXueGao = 0, GongZuoKuang = 0, FuMo = 0, NvShen = 0, DaShen = 0, BaJian = 0, HuaXin = 0, DaHuZi2 = 0, Christmas1 = 0, Christmas2 = 0, Christmas3 = 0 } export declare enum kSegmentPerformanceMode { Auto = 0, Quality = 1, Balanced = 2, Performance = 3 } /** * 滤镜配置 */ declare interface LutFilter { /** * 滤镜Url */ lutImageUrl?: string; /** * 已载入资源的的文件路径 */ lutImagePath?: string; /** * 透明度 */ alpha?: number; /** * 是否为压缩包,当前为false */ isZip?: boolean; } /** * 美妆配置 */ declare interface MakeupBeautyItem { /** * 美妆类型 */ makeupType: kQueenBeautyMakeupType; /** * 透明度 */ alpha: number; /** * 是否为女性 */ isFeMale?: boolean; /** * 美妆Url,多个路径用,号分开 */ makeupUrl: string; /** * 已载入资源的的文件路径,多个路径用,号分开 */ makeupPath: string; /** * 帧率,默认为20 */ fps?: number; /** * 混合模式 */ blend?: kQueenBeautyBlend; /** * 是否为压缩包 */ isZip?: boolean; /** * 压缩包中图片名称 */ zipImageName?: string; } /** * 贴纸配置 */ declare interface Material { /** * 资源Url */ materialUrl?: string; /** * 已载入资源的的文件路径 */ materialPath?: string; /** * 贴纸顺序,默认0 */ order?: number; /** * 是否为压缩包,贴纸当前为true */ isZip?: boolean; } /** * 模型配置 */ declare type ModelConfig = { /** * 背景抠图模型 */ SegmentModel: kQueenModelShapeType; /** * 美体模型 */ PoseModel: kQueenModelShapeType; /** * 推理后端选择 */ InferenceBackend: kBackendType; }; declare function QueenAssets(): void; declare namespace QueenAssets { var getMakeupEyeBallUrl: (type: kResMakeupEyeBall) => string; var getMakeupMouthRes: (type: kResMakeupMouth) => string[]; var getMakeupEyeBrowRes: (type: kResMakeupEyeBrow) => string[]; var getMakeupEyeShadowRes: (type: kResMakeupEyeShadow) => string[]; var getMakeupEyeLinerUrl: (type: kResMakeupEyeLiner) => string; var getMakeupEyeLashUrl: (type: kResMakeupEyeLash) => string; var getMakeupBlushUrl: (type: kResMakeupBlush) => string; var getMakeupWholeUrl: (type: kResMakeupWhole) => string; var getMakeupHighLightUrl: (type: kResMakeupHighLight) => string; var getLutUrl: (type: kResLut) => string; var getStickerUrl: (type: kResSticker) => string; var getStickerUrlByIndex: (type: number) => string; } declare class QueenEngine extends QueenEngineBase { static Assets: typeof Assets; static kQueenBeautyType: typeof kQueenBeautyType; static kQueenBeautyParams: typeof kQueenBeautyParams; static kBackgroundProcessType: typeof kBackgroundProcessType; static kQueenBeautyMakeupType: typeof kQueenBeautyMakeupType; static kQueenBeautyFaceShapeType: typeof kQueenBeautyFaceShapeType; static kQueenBeautyBlend: typeof kQueenBeautyBlend; static kSegmentPerformanceMode: typeof kSegmentPerformanceMode; static kQueenBeautyBodyShapeType: typeof kQueenBeautyBodyShapeType; static kQueenModelShapeType: typeof kQueenModelShapeType; constructor(); setWasmUrl(wasmUrl?: string): void; getWasmLoaderUrl(simdSupport: boolean): () => Promise; initTensorflow(type?: kQueenModelShapeType): Promise; segmentInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): void; poseInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): void; } export declare class QueenEngineBase { wasmUrl: string; webgl: WebGLUtil; private cacheHelper; private queenEngine; wasmInvoker: any; private inputTextureId; private queenCanvas; private tempCanvas; private tempVideoElement; private hasRenderCanvas; private cameraStream?; queenReady: boolean; private authState; private arWriteReady; private webglVersion; private renderRAF; private materialMap; private configUrlResources; private zipResources; ModelConfig: ModelConfig; constructor(); /** * True if SIMD is supported. * @returns */ checkSupportSIMD(): boolean; /** * True if threads are supported. * @returns */ checkSupportMutiThread(): boolean; getFullWasmName(simdSupport: boolean): string; getFullBinName(): string; getWasmLoaderUrl(simdSupport: boolean): () => Promise; getWasmUrl(): string; /** * 设备wasm路径 * @param wasmUrl SDK wasm和资源包url */ setWasmUrl(wasmUrl?: string): void; /** * SDK初始化 * @deprecated * @param sdkLicenseKey 授权licenseKey * @param initCallback 初始后完成后回调 为ture初始化成功,否则失败 * @param progressCallback SDK载入进度回调 * @param renderCanvas 渲染使用的canvas 可不传,不传时自动创建 */ initialize(sdkLicenseKey: string, initCallback: (result: boolean) => void, progressCallback: (progress: number) => void, renderCanvas: string, options?: any): void; /** * SDK初始化 * @param wasmUrl SDK目录地址 * @param sdkLicenseKey 授权licenseKey * @param initCallback 初始后完成后回调 * @param progressCallback SDK载入进度条 * @param renderCanvas 渲染使用的canvas 可不传,不传时自动创建 */ initializeWithUrl(wasmUrl: string, sdkLicenseKey: string, initCallback: (result: boolean) => void, progressCallback: (progress: number) => void, renderCanvas?: HTMLCanvasElement, options?: any): void; /** * SDK初始化 * @param sdkLicenseKey 授权licenseKey * @param initCallback 初始后完成后回调 为ture初始化成功,否则失败 * @param progressCallback SDK载入进度回调 * @param renderCanvas 渲染使用的canvas type必须为webgl;也可不传,不传时自动创建 */ init(sdkLicenseKey: string, initCallback: (result: boolean) => void, progressCallback: (progress: number) => void, renderCanvas?: HTMLCanvasElement, options?: any): void; /** * SDK初始化 * @param sdkConfig SdkConfig */ create(sdkConfig: SdkConfig): void; loadResourceData(dataUrl: string, bufferData: any, progressCallback: ((progress: number) => void) | undefined, responseCallback: (buffer: ArrayBuffer) => void, errCallback: any, index?: number, count?: number): void; clearResourceCache(): void; /** * SDK初始化 * @param sdkLicenseKey 授权licenseKey * @param initCallback 初始后完成后回调 * @param wasmBufferData wasm buffer data * @param assetBufferData 资源文件buffer data * @param renderCanvas 渲染使用的canvas 可不传,不传时自动创建 */ initializeWithBuffer(sdkLicenseKey: string, initCallback: (result: boolean) => void, wasmBufferData: ArrayBuffer, assetBufferData: ArrayBuffer, renderCanvas?: HTMLCanvasElement, options?: any): void; segmentInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): void; poseInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): void; /** * 通过JSON模式配置美颜参数 * @param config 美颜参数 */ setEngineParams(config: BeautyParams): void; setResourceParam(urlConfig: BeautyParams): Promise; _getSafariVersion(): number; _fixSafariWebgl(): void; /** * 切分需要下载资源的配置 * @param config * @returns */ _splitConfig(config: BeautyParams): {}[]; /** * 将json中的url资源进行上传,并将Key后缀的Url替换成Path * @param config */ _replaceConfigUrl(config: BeautyParams): Promise; _updateConfigResource(config: BeautyParams): {}; _isZipKey(jsonItem: object): boolean; _findConfigUrls(obj: any, urls?: never[], isZip?: boolean): string[]; _processAndUploadResources(jsonObject: any): Promise; _updateModel(sdkConfig: SdkConfig): void; _setModelConfig(options: any, sdkConfig: SdkConfig): void; getModelConfig(): ModelConfig; initTensorflow(type?: kQueenModelShapeType): Promise; /** * 启用摄像头美颜 * @param constraints 摄像头参数 * @returns 美颜视频流 */ openCameraAndRender(constraints?: MediaStreamConstraints, width?: number, height?: number): Promise; stopCamera(): void; /** * 图片美颜渲染 * 返回渲染后的ImageBuffer RGBA对象 * @param imageData 图片ImageBuffer RGBA, * 示例:const imageData = new Uint8Array(ImageData.data); * @param imageWidth 宽 * @param imageHeight 高 * @param renderCallback 图片渲染回调 */ render(imageData: Uint8Array, imageWidth: number, imageHeight: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * 基于纹理id渲染 * TextureId -> Texture * @param inTextureId 输入纹理id,可以调用generateTexture创建纹理ID * @param width 媒体对像宽度 * @param height 媒体对像高度 * @returns 纹理对象 */ renderTextureId(textureId: number, imageWidth: number, imageHeight: number, useOutTextureId?: number): WebGLTexture | null; /** * 美颜渲染媒体对象到RenderCanvas * mediaObject -> Draw() * RenderCanvas为初始化时指定的Canvas * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) | Uint8Array */ renderMediaObjectToRenderCanvas(mediaObject: TexImageSourceWebCodecs | Uint8Array, width?: number, height?: number): void; /** * 基于纹理ID渲染并返回纹理对象 * MediaObject -> Texture * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) | Uint8Array * @param width 对象width * @param height 对象height * @returns 纹理对象 */ renderMediaObjectToTexture(mediaObject: TexImageSourceWebCodecs | Uint8Array, width?: number, height?: number): WebGLTexture | null; /** * 媒体对象渲染 * 返回渲染后ImageData对象 * MediaObject -> Callback(Uint8Array) * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) | Uint8Array * @param width * @param height * @param renderCallback */ renderWithMediaObject(mediaObject: TexImageSourceWebCodecs | Uint8Array, width: number, height: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * 前端JS渲染回调 * @param outImageBufferPtr * @param size * @param imageWidth * @param imageHeight * @param renderCallback */ renderDataCallback(outImageBufferPtr: number, size: number, imageWidth: number, imageHeight: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; isWebCodecsSupported(): boolean; /** * 视频流渲染 返回渲染视频流 * MediaStream -> MediaStream * 需要Chrome 94+版本浏览器支持 * @param inputMediaStream 输入媒体流 */ renderMediaStream(inputMediaStream: MediaStream, width?: number, height?: number): MediaStream | null; /** * 视频流渲染 返回渲染视频流 * 只建议Safari使用,解决Safari不支持MediaStreamTrackProcessor接口问题 * MediaStream -> MediaStream * 支持Chrome 94以下版本浏览器 * @param inputMediaStream 输入媒体流 */ safariRenderMediaStreamWithCanvas(inputMediaStream: MediaStream, width?: number, height?: number): MediaStream | null; /** * 视频流渲染 返回渲染视频流,iOS 回退方案:使用 Canvas 渲染视频流 * 只建议Safari使用,解决Safari不支持MediaStreamTrackProcessor接口问题 * MediaStreamVideoTrack -> MediaStream * 支持Chrome 94以下版本浏览器支持 * @param videoElem Video控件,部分浏览自动播放出现权限问题时用此方法 */ safariRenderVideoStreamWithCanvas(videoElem: HTMLVideoElement, width?: number, height?: number): MediaStream | null; /** * 视频流渲染 返回渲染视频流,iOS 回退方案:使用 Canvas 渲染视频流 * 只建议Safari使用,解决Safari不支持MediaStreamTrackProcessor接口问题 * MediaStreamVideoTrack -> MediaStream * 支持Chrome 94以下版本浏览器支持 * @param inputMediaStream 输入媒体流 */ safariRenderMediaStreamTrackWithCanvas(videoTrack: MediaStreamVideoTrack, width?: number, height?: number): MediaStream | null; /** * 视频流渲染 返回渲染视频流 * MediaStreamVideoTrack -> MediaStreamVideoTrack * 需要Chrome 94+版本浏览器支持 * @param videoMediaStreamTrack 输入媒体流 */ renderMediaStreamTrack(videoMediaStreamTrack: MediaStreamVideoTrack, width?: number, height?: number): MediaStreamVideoTrack | null; /** * Queen 美颜流式处理器 * @param width * @param height * @returns */ getTransformStream(width?: number, height?: number): TransformStream; /** * queen引擎初始化 * @param sdkLicenseKey 授权key * @param faceData 人脸数据状态 * @param renderCanvas 渲染使用的canvas 不传时自动创建 * @returns */ queenInitialize(sdkLicenseKey: string, domain?: string, faceData?: boolean, renderCanvas?: HTMLCanvasElement): Promise; /** * 取消绿幕抠图 */ disableGreenScreen(): void; /** * 绿幕/蓝幕抠图 * 开启此抠图功能,纯色背景抠图(setPureColorToBackground)会关闭。 * @param isBlue 绿幕:false,蓝幕:true * @param backgroundImgUrl 背景图片,支持图片格式:png,为空时禁用抠图 * @param threshold 幕布敏感度[1,10],默认1 * @param autoThresholdEnabled 是否根据环境动态计算幕布敏感度,为true时调节参数threshold失效,为false时调节参数threshold生效 * @param outputGrayMask 输出灰色遮罩 * @param backgroundProcessType 背景处理方式。 */ setGreenScreenWithUrl(isBlue: boolean, backgroundImgUrl: string, threshold?: number, autoThreshold?: boolean, outputGrayMask?: boolean, backgroundProcessType?: kBackgroundProcessType): Promise; /** * 启用背景模糊 * @param enableBokeh 为true时启用 */ enableBokehBackground(enableBokeh: boolean): void; /** * 启用背景透明 * @param enableTransparent 为true时启用 */ enableTransparentBackground(enableTransparent: boolean): void; /** * 设置背景处理模式 * @param enable 是否启用 * @param type 背景模式 */ enableBackgroundByType(enable: boolean, type: kBackgroundProcessType): void; disableSegmentBackground(): void; /** * 实景AI抠图 * @param backgroundImgUrl 抠图背景图片url,支持图片格式:png,为空时禁用抠图 * @returns */ setSegmentBackgroundUrl(backgroundImgUrl: string): Promise; /** * 实景AI抠图 * @param backgroundImgPath SDK中资源路径 ,支持图片格式:png * @param backgroundProcessType 0:背景虚化 1:背景透明 2:背景正常 */ setSegmentBackgroundImage(backgroundImgPath: string, backgroundProcessType?: kBackgroundProcessType, flipX?: boolean, flipY?: boolean): void; /** * 调整实景抠图的背景处理方式 * @param type 0:背景虚化 1:背景透明 2:背景正常 */ setSegmentBackgroundProcessType(type: kBackgroundProcessType): void; /** * 调整实景抠图的前景边距。 * @param padding 前景边距,[0,15],默认0。 */ setAISegmentForegroundPadding(padding: number): void; /** * 纯色背景抠图。 * 注意:开启此抠图功能,绿幕抠图(setGreenScreen)会关闭。 * @param backgroundImgPath 背景图片url,支持图片格式:png, 为空时取消抠图 * @param threshold 幕布敏感度[1,10],默认1 * @param colorType 需要被替换的颜色类型,0绿色(green),1蓝色(blue),2青色(cyan),3紫色(purple),4黄色(yellow),5红色(red),默认0。 */ setPureColorBackgroundUrl(backgroundImgUrl: string, threshold: number | undefined, colorType: number): Promise; /** * 纯色背景抠图。 * 注意:开启此抠图功能,绿幕抠图(setGreenScreen)会关闭。 * @param backgroundImgPath 背景图片path,支持图片格式:png * @param threshold 幕布敏感度[1,10],默认1 * @param colorType 需要被替换的颜色类型,0绿色(green),1蓝色(blue),2青色(cyan),3紫色(purple),4黄色(yellow),5红色(red),默认0。 */ setPureColorToBackground(backgroundImgPath: string, threshold: number | undefined, colorType: number): void; /** * 显示美颜配置 */ showQueenParamJson(): void; /** * 载入url资源到引擎 * @param url url链接 * @param needUnZip 是否需要解压 * @returns */ loadResourceFileWithUrl(url: string, needUnZip: boolean): Promise; /** * 文件buffer * @param buffer 载入Assets资源文件 */ loadQueenAssets(buffer: ArrayBuffer): boolean; /** * 载入url资源到引擎 * @param url url链接 * @param saveFileName 保存的文件名 * @param needUnZip 是否需要解压 * @returns */ loadResourceFileWithUrlSaveAs(url: string, saveFileName: string, needUnZip: boolean): Promise; /** * 载入资源到引擎 * @param buffer 数据流buffer * @param saveFileName 保存的文件名 * @param needUnZip 是否需要解压 * @returns */ loadResourceFileWithData(buffer: ArrayBuffer, saveFileName: string, needUnZip: boolean): Promise; /** * 验证资源文件是否存在 * @param fullFileName 完整的路径文件名 * @returns */ checkResourceFile(fullFileName: string): boolean; /** * 配置美颜类型 * @param type 美颜类型kQueenBeautyType枚举 * @param enable 是否启用 */ setQueenBeautyType(type: kQueenBeautyType, enable: boolean): void; /** * 配置美颜参数值 * @param param 美颜参数kQueenBeautyParams枚举 * @param value 参数值 */ setQueenBeautyParams(param: kQueenBeautyParams, value: number): void; /** * 获取美颜参数 * @param param kQueenBeautyParams枚举 */ getQueenBeautyParams(param: kQueenBeautyParams): number; /** * 输入是否进行翻转 * @param {*} flip 0:不做翻转 1:X轴翻转 2:Y轴翻转 * @returns */ setInputFlip(flip: number): void; /** * 禁用LUT滤镜 */ disableLut(): void; /** * 使用内置Lut滤镜 * @param lutType Assets.kResLut枚举 * @returns */ setLutByType(lutType: Assets.kResLut, alpha?: number): Promise; /** * 设置Lut滤镜 * @param imageUrl 所要设置的滤镜图片Url * @returns */ setLutImageUrl(imageUrl: string): Promise; /** * 设置Lut滤镜 * @param imagePath 所要设置的滤镜图片Path */ setLutImagePath(imagePath: string): void; /** * 设置美型类型,设置前需要将kQueenBeautyType.FaceShape打开 * @param faceShapeType 需要设置美型的类型,kQueenBeautyFaceShapeType枚举 * @param value 需要设置的值 */ setFaceShape(faceShapeType: kQueenBeautyFaceShapeType, value: number): void; /* Excluded from this release type: setMakeupEyeBrow */ /* Excluded from this release type: setMackupEyeLash */ /* Excluded from this release type: setMakeupEyeShadow */ /* Excluded from this release type: setMakeupEyeLiner */ /* Excluded from this release type: setMakeupEyeBall */ /* Excluded from this release type: setMakeupMouth */ /* Excluded from this release type: setMakeupWhole */ /* Excluded from this release type: setMakeupBlush */ /* Excluded from this release type: setMakeupHighlight */ /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型 kQueenBeautyMakeupType枚举 * @param imageUrl 美妆素材Url地址 * @param blend 混合类型kQueenBeautyBlend枚举 */ setMakeupWithUrl(makeupType: kQueenBeautyMakeupType, imageUrl: string, blend: kQueenBeautyBlend): Promise; /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型kQueenBeautyMakeupType枚举 * @param packageUrl 资源压缩包url * @param imageName 包内图片名称 * @param blend 混合类型 混合类型kQueenBeautyBlend枚举 */ setMakeupWithPackage(makeupType: kQueenBeautyMakeupType, packageUrl: string, imageName: string, blend: kQueenBeautyBlend): Promise; /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型kQueenBeautyMakeupType枚举 * @param imagePaths 资源压缩包Path * @param blend 混合类型 kQueenBeautyBlend枚举 * @param fps 帧率 */ setMakeupWithType(makeupType: kQueenBeautyMakeupType, imagePaths: string, blend: kQueenBeautyBlend, fps?: number): void; /** * 设置女性美妆透明度,可指定性别 * @param makeupType 美妆类型 * @param alpha 妆容透明度 */ setMakeupFemaleAlpha(makeupType: kQueenBeautyMakeupType, alpha: number): void; /** * 设置男性美妆透明度,可指定性别 * @param makeupType 美妆类型 * @param alpha 妆容透明度 */ setMakeupMaleAlpha(makeupType: kQueenBeautyMakeupType, alpha: number): void; /** * 设置美妆透明度,可指定性别 * @param makeupType 美妆类型 * @param isFeMale 是否是女性,女性:true,男性:false,(男性为接口预留,这里均传女性即true即可) * @param alpha 妆容透明度 */ setMakeupAlphaWithType(makeupType: kQueenBeautyMakeupType, isFeMale: boolean, alpha: number): void; /** * 设置美妆类型的混合类型 * @param makeupType 美妆类型 * @param blend 混合类型 */ setMakeupBlendWithType(makeupType: kQueenBeautyMakeupType, blend: number): void; /** * 移除美妆效果 * @param makeupType 美妆类型 */ removeMakeupWithType(makeupType: kQueenBeautyMakeupType): void; /** * 清除所有美妆 */ resetAllMakeupType(): void; /** * 设置贴纸 * @param stickerType 贴纸类型 * @returns */ addMaterialWithType(stickerType: Assets.kResSticker): Promise; /** * 设置贴纸 * @param stickerIndex 贴纸索引值 * @returns */ addMaterialWithIndex(stickerIndex: number): Promise; /** * 设置内置资源贴纸 * @param stickerIndex 贴纸索引值数组 * @returns */ addMaterialWithIndexs(stickerIndexs: number[]): Promise; /** * 设置内置资源贴纸 * @param materialZipUrl 贴纸资源包Url * @returns */ addMaterialWithUrl(materialZipUrl: string, zIndex?: number): Promise; /** * 增加贴纸/贴图/实景抠图需要替换的背景,素材统一接口,支持GLTF,TAOPAI,MEDIAAI 类型 * @param materialPath SDK引擎中的路径 */ addMaterialWithPath(materialPath: string, zIndex?: number): void; /** * 移除贴纸 * @param stickerType 内置贴纸类型 * @returns */ removeMaterialWithType(stickerType: Assets.kResSticker): void; /** * 移除贴纸 * @param stickerIndex 内置贴纸索引值 * @returns */ removeMaterialWithIndex(stickerIndex: number): void; /** * 删除贴纸/贴图/实景抠图需要替换的背景 * @param materialZipUrl */ removeMaterialWithUrl(materialZipUrl: string): void; /** * 删除贴纸/贴图/实景抠图需要替换的背景 * @param materialPath SDK引擎中的路径 */ removeMaterialWithPath(materialPath: string): void; /** * 展示人脸识别点位 * @param show 是否展示 */ showFaceDetectPoint(show: boolean): void; /** * 展示人脸区域三角剖分线 * @param show 是否展示 */ showMakeupLine(show: boolean): void; /** * 显示人体关键点 * @param show 是否显示 */ showBodyDetectPoint(show: boolean): void; /** * 引擎注销 */ engineDestory(): void; /** * 初始化AR写字模块 * @returns */ initArWriteResource(): Promise; /** * 开启Ar写字 * @param enable true: 开启 * @param mode 1: 写字, 2: 画画。 */ setArWriting(enable: boolean, mode: number): void; /** * 清除AR写字痕迹 */ cleanScreenArWriting(): void; /** * 设置引擎性能模式 * @param enable true:性能优先模式 */ setPowerSaving(enable: boolean): void; /** * 设置美体美颜 * @param bodyShapeType 美体类型 * @param value 形变程度 */ setBodyShape(bodyShapeType: kQueenBeautyBodyShapeType, value: number): void; /** * Animoji初始化 * @param animojiUrl animoji资源地址 * @param width 宽 * @param height 高 * @param scale 放大尺寸 * @returns */ animojiInitialize(animojiUrl: string, width: number, height: number, scale: number): Promise; /** * 设置Animoji背景模式 * @param mode 背景模式:0:无,1:摄像头背景 2:指定背景图片 * @param backgroundImgUrl 背景图片,如果mode=2时需要指定 */ setAnimojiBackgroundWithMode(mode: kBackgroundProcessType, backgroundImgUrl: string): Promise; /** * 美颜渲染媒体对象到RenderCanvas * RenderCanvas为初始化时指定的Canvas * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) | Uint8Array */ animojiRenderMediaObjectToRenderCanvas(mediaObject: TexImageSourceWebCodecs | Uint8Array, width?: number, height?: number): void; /** * Animoji 图片渲染 * @param imageData 图片imageData * @param imageWidth 宽 * @param imageHeight 高 * @param renderCallBack 渲染回调 */ animojiRender(imageData: Uint8Array, imageWidth: number, imageHeight: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * Animoji渲染 * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) | Uint8Array * @param imageWidth 宽 * @param imageHeight 高 * @param renderCallBack 渲染回调 */ animojiRenderWithMediaObject(mediaObject: TexImageSourceWebCodecs | Uint8Array, width: number, height: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * Animoji渲染 * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) | Uint8Array * @param width 宽 * @param height 高 * @returns 渲染后纹理对象 */ animojiRenderMediaObjectToTexture(mediaObject: TexImageSourceWebCodecs | Uint8Array, width?: number, height?: number): WebGLTexture | null; /** * Animoji渲染 * @param inTextureId 纹理ID * @param width 宽 * @param height 高 * @returns 渲染后纹理对象 */ animojiRenderTextureId(inTextureId: number, width: number, height: number): WebGLTexture | null; /** * Animoji大小调整 * @param scale 推荐:0.8~1.5 */ animojiResize(scale: number): void; /** * Animoji引擎注销 */ animojiDestroy(): void; getEngine(): any; getWebglUtil(): WebGLUtil; createRenderCanvas(): HTMLCanvasElement; getRenderCanvas(): any; /** * 获取webgl context * @returns */ getWebglContext(): any; /** * 初始化GL Context * @param canvas */ initGLContext(canvas: any): void; resetGLContext(): void; /** * 创建纹理ID * @returns 返回空白纹理ID */ _getInputTexture(width?: number, height?: number): [number, WebGLTexture]; /** * 如果纹理不存在则创建纹理,否则更新纹理 * @param mediaObject 媒体对象 * @param width * @param height * @returns */ buildInputTexture(mediaObject: TexImageSourceWebCodecs | Uint8Array, width?: number, height?: number): number; /** * 创建纹理并返回纹理ID * @param mediaObject 媒体对象 TexImageSourceWebCodecs(ImageData | ImageBitmap | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | VideoFrame | OffscreenCanvas) * @param width * @param height */ generateTexture(mediaObject: TexImageSourceWebCodecs | Uint8Array, width: number, height: number): number; /** * 创建空白纹理 * @returns 纹理ID */ generateBlankTexture(width?: number, height?: number): number; /** * 生成纹理ID * @param texture * @returns */ buildTextureId(texture: WebGLTexture): number; /** * 获取纹理 */ getGLTextureById(textureId: number): any; /** * 将输出的纹理绘制在RenderCanvas上 * @param texture 输出的纹理 * @param width * @param height */ drawOutTexture(texture: WebGLTexture, width: number, height: number): void; queenAssert(): void; assertMessage(result: boolean, message: string): void; } export declare class QueenEngineFull extends QueenEngineBase { static Assets: typeof Assets; static kQueenBeautyType: typeof kQueenBeautyType; static kQueenBeautyParams: typeof kQueenBeautyParams; static kBackgroundProcessType: typeof kBackgroundProcessType; static kQueenBeautyMakeupType: typeof kQueenBeautyMakeupType; static kQueenBeautyFaceShapeType: typeof kQueenBeautyFaceShapeType; static kQueenBeautyBlend: typeof kQueenBeautyBlend; static kSegmentPerformanceMode: typeof kSegmentPerformanceMode; static kQueenBeautyBodyShapeType: typeof kQueenBeautyBodyShapeType; static kQueenModelShapeType: typeof kQueenModelShapeType; static kBackendType: typeof kBackendType; private segmentInference?; private poseInference?; constructor(); setWasmUrl(wasmUrl?: string): void; getWasmLoaderUrl(simdSupport: boolean): () => Promise; initTensorflow(type?: kQueenModelShapeType): Promise; initSegmentTensorflow(type?: kQueenModelShapeType): Promise; initPoseTensorflow(type?: kQueenModelShapeType): Promise; segmentInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): any; poseInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): any; getSegmentData(): Float32Array | null | undefined; } export declare class QueenEngineLite extends QueenEngineBase { static kQueenBeautyType: typeof kQueenBeautyType; static kQueenBeautyParams: typeof kQueenBeautyParams; constructor(); setWasmUrl(wasmUrl?: string): void; getWasmLoaderUrl(simdSupport: boolean): () => Promise; initTensorflow(type?: kQueenModelShapeType): Promise; segmentInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): void; poseInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): void; } export declare class QueenEnginePro extends QueenEngineBase { static Assets: typeof Assets; static kQueenBeautyType: typeof kQueenBeautyType; static kQueenBeautyParams: typeof kQueenBeautyParams; static kBackgroundProcessType: typeof kBackgroundProcessType; static kQueenBeautyMakeupType: typeof kQueenBeautyMakeupType; static kQueenBeautyFaceShapeType: typeof kQueenBeautyFaceShapeType; static kQueenBeautyBlend: typeof kQueenBeautyBlend; static kSegmentPerformanceMode: typeof kSegmentPerformanceMode; static kQueenBeautyBodyShapeType: typeof kQueenBeautyBodyShapeType; static kQueenModelShapeType: typeof kQueenModelShapeType; static kBackendType: typeof kBackendType; private segmentInference?; private poseInference?; constructor(); setWasmUrl(wasmUrl?: string): void; getWasmLoaderUrl(simdSupport: boolean): () => Promise; initTensorflow(type?: kQueenModelShapeType): Promise; initSegmentTensorflow(type?: kQueenModelShapeType): Promise; initPoseTensorflow(type?: kQueenModelShapeType): Promise; segmentInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): any; poseInferenceExecute(imageData: ImageData, width: number, height: number, channel: number): any; getSegmentData(): Float32Array | null | undefined; } export declare class QueenEngineWorker { static Assets: typeof Assets; static kQueenBeautyType: typeof kQueenBeautyType; static kQueenBeautyParams: typeof kQueenBeautyParams; static kBackgroundProcessType: typeof kBackgroundProcessType; static kQueenBeautyMakeupType: typeof kQueenBeautyMakeupType; static kQueenBeautyFaceShapeType: typeof kQueenBeautyFaceShapeType; static kQueenBeautyBlend: typeof kQueenBeautyBlend; static kSegmentPerformanceMode: typeof kSegmentPerformanceMode; static kQueenModelShapeType: typeof kQueenModelShapeType; static kQueenBeautyBodyShapeType: typeof kQueenBeautyBodyShapeType; static kQueenVersion: typeof kQueenVersion; private queenWorker; private rendering; queenReady: boolean; private authState; private initializeCallback; private loaddingCallback; private imageDataRenderCallback; private imageBufferRenderCallback; private loadUrlCallback; private complateCallback; private renderComplateCallback; private stateCallback; private getParamsValueCallback; private getQueenConfigCallback; private renderMediaStreamCallback; private renderTexturepCallback; wasmUrl: string; webgl: WebGLUtil; private cacheHelper; private renderOffscreenCanvas; private arWriteReady; private queenVersion; /** * Queen Sdk Worker初始化 * @param queenVersion Queen版本,kQueenVersion枚举 * @param queenWorkerJsUrl queen worker js url,可以不传,不传时从远程载入 * Lite版:https://g.alicdn.com/apsara-media-box/imp-web-queen-wasm/${版本号}/dist/js/aliyun-queen-engine-worker-lite.worker.js * 高级美颜版:https://g.alicdn.com/apsara-media-box/imp-web-queen-wasm/${版本号}/dist/js/aliyun-queen-engine-worker.worker.js * 抠图版:https://g.alicdn.com/apsara-media-box/imp-web-queen-wasm/${版本号}/dist/js/aliyun-queen-engine-worker-pro.worker.js * 全功能版:https://g.alicdn.com/apsara-media-box/imp-web-queen-wasm/${版本号}/dist/js/aliyun-queen-engine-worker-full.worker.js */ constructor(queenVersion?: kQueenVersion, queenWorkerJsUrl?: string); /** * 从远程载入Worker js */ loadWorkerJsByRemote(): void; /** * 从本地载入worker js * @param queenWorkerJsUrl */ loadWorkerByLocal(queenWorkerJsUrl: string): void; /** * 更新worker监听 */ updateWorkerListener(): void; getQueenWorker(): Worker; /** * True if SIMD is supported. * @returns */ checkSupportSIMD(): boolean; /** * True if threads are supported. * @returns */ checkSupportMutiThread(): boolean; getFullWasmName(simdSupport: boolean): string; getFullBinName(): string; getWasmUrl(): string; /** * 设备wasm路径 * @param wasmUrl SDK wasm和资源包url */ setWasmUrl(wasmUrl?: string): void; initializeWithUrl(wasmUrl: string, sdkLicenseKey: string, initCallback: (result: boolean) => void, loaddingCallback: (progress: number) => void, renderCanvas?: HTMLCanvasElement, options?: any): void; /** * SDK初始化 * @deprecated * @param sdkLicenseKey 授权licenseKey * @param initCallback 初始后完成后回调 * @param loaddingCallback SDK载入进度回调 * @param renderCanvas 渲染使用的canvas 可不传,不传时自动创建 */ initialize(sdkLicenseKey: string, initCallback: (result: boolean) => void, loaddingCallback: (progress: number) => void, renderCanvas: string, options?: any): void; create(sdkConfig: SdkConfig): void; /** * SDK初始化 * @param sdkLicenseKey 授权licenseKey * @param initCallback 初始后完成后回调 * @param loaddingCallback SDK载入进度回调 * @param renderCanvas 渲染使用的canvas 可不传,不传时自动创建 */ init(sdkLicenseKey: string, initCallback: (result: boolean) => void, loaddingCallback: (progress: number) => void, renderCanvas?: HTMLCanvasElement, options?: any): void; /** * SDK初始化 * @param sdkLicenseKey 授权licenseKey * @param wasmBufferData wasm buffer data * @param assetBufferData 资源文件buffer data * @param renderCanvas 渲染使用的canvas 可不传,不传时自动创建 */ initializeWithBuffer(sdkLicenseKey: string, initCallback: (result: boolean) => void, wasmBufferData: ArrayBuffer, assetBufferData: ArrayBuffer, renderCanvas?: HTMLCanvasElement, options?: any): void; loadResourceData(dataUrl: string, progressCallback: (progress: number) => void, responseCallback: (buffer: ArrayBuffer) => void, errCallback: any, index?: number, count?: number): void; clearResourceCache(): void; /** * 图片美颜渲染 * 返回渲染后ImageData对象 * @param imageData imageData * @param imageWidth image width * @param imageHeight image height * @param renderCallback render callback */ render(imageData: Uint8Array, imageWidth: number, imageHeight: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * 基于纹理id渲染 * 输入纹理id 返回纹理id * @param inTextureId 输入纹理id * @param width 媒体对像宽度 * @param height 媒体对像高度 * @returns 纹理对象 */ renderTextureId(textureId: number, imageWidth: number, imageHeight: number): WebGLTexture | null; /** * 美颜渲染媒体对象到RenderCanvas * @param mediaElement 媒体对象 ImageData | ImageBitmap | VideoFrame * @param width 对象width * @param height 对象height * @returns 纹理对象 */ renderMediaObjectToRenderCanvas(mediaElement: ImageData | ImageBitmap | VideoFrame, width: number, height: number): Promise; /** * 基于纹理ID渲染并返回纹理对象 * @param mediaElement 媒体对象 ImageData | ImageBitmap | VideoFrame * @param width 对象width * @param height 对象height * @returns 纹理对象 */ renderMediaObjectToTexture(mediaElement: ImageData | ImageBitmap | VideoFrame, width: number, height: number): WebGLTexture | null; /** * 媒体对象渲染 * 返回渲染后ImageData对象 * @param mediaElement 媒体对象 ImageData | ImageBitmap | VideoFrame * @param width * @param height * @param renderCallback */ renderWithMediaObject(mediaElement: ImageData | ImageBitmap | VideoFrame, width: number, height: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * MediaStreamTrackProcessor渲染实现 * @param renderVideo * @param inputMediaStream * @param trackerCallback */ renderMediaStream(inputMediaStream: MediaStream, width?: number, height?: number, completeCallback?: () => void): MediaStream | null; /** * MediaStreamTrackProcessor渲染实现 * @param renderVideo * @param MediaStreamTrack * @param completeCallback */ renderMediaStreamTrack(mediaStreamTrack: MediaStreamVideoTrack, width?: number, height?: number, completeCallback?: () => void): MediaStreamVideoTrack | null; /** * MediaStreamTrackProcessor渲染实现 * @param readableStream 读取流 * @param writeStream 写入流 * @param width 输出宽度 * @param height 输出高度 * @param completeCallback 渲染回调 */ renderReadableStream(readableStream: ReadableStream, writeStream: WritableStream, width?: number, height?: number, completeCallback?: () => void): void; /** * 绿幕/蓝幕抠图 * 开启此抠图功能,纯色背景抠图(setPureColorToBackground)会关闭。 * @param isBlue 绿幕:false,蓝幕:true * @param backgroundImgUrl 背景图片url,支持图片格式:png * @param threshold 幕布敏感度[1,10],默认1 * @param autoThresholdEnabled 是否根据环境动态计算幕布敏感度,为true时调节参数threshold失效,为false时调节参数threshold生效 * @param outputGrayMask 输出灰色遮罩 * @param backgroundProcessType 背景处理方式。 */ setGreenScreenWithUrl: (isBlue: boolean, backgroundImgUrl: string, threshold: number | undefined, autoThreshold: boolean, outputGrayMask: boolean, backgroundProcessType: kBackgroundProcessType) => Promise; /** * 启用背景模糊 * @param enableBokeh 为true时启用 */ enableBokehBackground(enableBokeh: boolean): void; /** * 启用背景透明 * @param enableTransparent 为true时启用 */ enableTransparentBackground(enableTransparent: boolean): void; /** * 设置背景处理模式 * @param enable 是否启用 * @param type 背景模式 */ enableBokehBackgroundByType(enable: boolean, type: kBackgroundProcessType): void; setEngineParams(params: BeautyParams): void; /** * 实景AI抠图 * @param backgroundImgUrl 抠图背景图片url,支持图片格式:png * @returns */ setSegmentBackgroundUrl(backgroundImgUrl: string): Promise; /** * 调整实景抠图的背景处理方式 * @param type 0:背景虚化 1:背景透明 2:背景正常 */ setSegmentBackgroundProcessType(type: kBackgroundProcessType): void; /** * 调整实景抠图的前景边距。 * @param padding 前景边距,[0,15],默认0。 */ setAISegmentForegroundPadding(padding: number): void; /** * 纯色背景抠图。 * 注意:开启此抠图功能,绿幕抠图(setGreenScreen)会关闭。 * @param backgroundImgPath 背景图片url,,支持图片格式:png * @param threshold 幕布敏感度[1,10],默认1 * @param colorType 需要被替换的颜色类型,0绿色(green),1蓝色(blue),2青色(cyan),3紫色(purple),4黄色(yellow),5红色(red),默认0。 */ setPureColorBackgroundUrl(backgroundImgUrl: string, threshold: number | undefined, colorType: number): Promise; /** * 显示美颜配置 */ showQueenParamJson(): Promise; /** * 显示美颜配置 */ showQueenParam(): Promise; /** * 载入url资源到引擎 * @param url url链接 * @param needUnZip 是否需要解压 * @returns */ loadResourceFileWithUrl(url: string, needUnZip: boolean): Promise; /** * 载入url资源到引擎 * @param url url链接 * @param saveFileName 保存的文件名 * @param needUnZip 是否需要解压 * @returns */ loadResourceFileWithUrlSaveAs(url: string, saveFileName: string, needUnZip: boolean): Promise; /** * 载入资源到引擎 * @param buffer 数据流buffer * @param saveFileName 保存的文件名 * @param needUnZip 是否需要解压 * @returns */ loadResourceFileWithData(buffer: ArrayBuffer, saveFileName: string, needUnZip: boolean): Promise; /** * 验证资源文件是否存在 * @param fullFileName 完整的路径文件名 * @returns */ checkResourceFile(fullFileName: string): Promise; /** * @brief 打开或者关闭某个美颜类型 * @param type QueenBeautyType 类型的一个值 * @param enable true: 打开,false:关闭 */ setQueenBeautyType(type: kQueenBeautyType, enable: boolean): void; /** * @brief 设置美颜参数 * @param param 美颜参数类型,QueenBeautyParams 中的一个 * @param value 需要设置的数值,值的范围都是[0,1],小于0的置0,大于1的置1 */ setQueenBeautyParams(param: kQueenBeautyParams, value: number): void; /** * @brief 获取美颜参数 * @param param 美颜参数类型,QueenBeautyParams 中的一个 */ getQueenBeautyParams(param: kQueenBeautyParams): Promise; setLutByType(lutType: Assets.kResLut, alpha?: number): Promise; /** * @brief 设置滤镜图片,设置滤镜图片前需要将kQueenBeautyTypeLUT打开 * @param imageUrl 所要设置的滤镜图片的url */ setLutImageUrl(imageUrl: string): Promise; /** * 设置美型类型,设置前需要将kQueenBeautyType.FaceShape打开 * @param faceShapeType 需要设置美型的类型,kQueenBeautyFaceShapeType枚举 * @param value 需要设置的值 */ setFaceShape(faceShapeType: kQueenBeautyFaceShapeType, value: number): void; /** * 设置美妆眉毛 * @param eyeBrowType 眉毛类型,kResMakeupEyeBrow枚举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupEyeBrow(eyeBrowType: Assets.kResMakeupEyeBrow, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆睫毛 * @param eyelashType 睫毛类型,kResMakeupEyeLash枚举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMackupEyeLash(eyelashType: Assets.kResMakeupEyeLash, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆眼影 * @param eyeShadowType 眼影类型,kResMakeupEyeShadow * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupEyeShadow(eyeShadowType: Assets.kResMakeupEyeShadow, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆眼线 * @param eyeLinerType 眼线类型,kResMakeupEyeLiner检举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupEyeLiner(eyeLinerType: Assets.kResMakeupEyeLiner, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆美瞳 * @param eyeballType 美瞳类型,kResMakeupEyeBall枚举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupEyeBall(eyeballType: Assets.kResMakeupEyeBall, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆口红 * @param mouthType 口红类型,kResMakeupMouth枚举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupMouth(mouthType: Assets.kResMakeupMouth, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆整妆 * @param wholeType * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupWhole(wholeType: Assets.kResMakeupWhole, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆腮红 * @param blushType 腮红类型,kResMakeupBlush检举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupBlush(blushType: Assets.kResMakeupBlush, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆高光 * @param highlightType 高光类型kResMakeupHighLight枚举 * @param blend 混合类型,kQueenBeautyBlend枚举 * @returns */ setMakeupHighlight(highlightType: Assets.kResMakeupHighLight, blend?: kQueenBeautyBlend): Promise; /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型 kQueenBeautyMakeupType枚举 * @param imageUrl 美妆素材Url地址 * @param blend 混合类型kQueenBeautyBlend枚举 */ setMakeupWithUrl(makeupType: kQueenBeautyMakeupType, imageUrl: string, blend: kQueenBeautyBlend, fps: number): Promise; /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型kQueenBeautyMakeupType枚举 * @param packageUrl 资源压缩包url * @param imageName 包内图片名称 * @param blend 混合类型 混合类型kQueenBeautyBlend枚举 */ setMakeupWithPackage(makeupType: kQueenBeautyMakeupType, packageUrl: string, imageName: string, blend: kQueenBeautyBlend): Promise; /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型kQueenBeautyMakeupType枚举 * @param packageUrl 资源压缩包url * @param imageName 包内图片名称 * @param blend 混合类型 */ setMakeupWithType(makeupType: kQueenBeautyMakeupType, imagePaths: string, blend: kQueenBeautyBlend): void; /** * 设置美妆类型和图片素材路径,设置美妆需要将kQueenBeautyType.Makeup 打开 * @param makeupType 美妆类型kQueenBeautyMakeupType枚举 * @param packageUrl 资源压缩包url * @param imageName 包内图片名称 * @param blend 混合类型 */ setMakeupWithTypeFps(makeupType: kQueenBeautyMakeupType, imagePaths: string, blend: kQueenBeautyBlend, fps: number): void; /** * 设置女性美妆透明度,可指定性别 * @param makeupType 美妆类型 * @param alpha 妆容透明度 */ setMakeupFemaleAlpha(makeupType: number, alpha: number): void; /** * 设置男性美妆透明度,可指定性别 * @param makeupType 美妆类型 * @param alpha 妆容透明度 */ setMakeupMaleAlpha(makeupType: number, alpha: number): void; /** * 设置美妆透明度,可指定性别 * @param makeupType 美妆类型 * @param isFeMale 是否是女性,女性:true,男性:false,(男性为接口预留,这里均传女性即true即可) * @param alpha 妆容透明度 */ setMakeupAlphaWithType(makeupType: number, isFeMale: boolean, alpha: number): void; /** * 设置美妆类型的混合类型 * @param makeupType 美妆类型 * @param blend 混合类型 */ setMakeupBlendWithType(makeupType: number, blend: number): void; /** * @brief 清除所有美妆 */ resetAllMakeupType(): void; setBodyShape(bodyShapeType: number, value: number): void; /** * 设置贴纸 * @param stickerType 贴纸类型 * @returns */ addMaterialWithType(stickerType: Assets.kResSticker): Promise; /** * 设置贴纸 * @param stickerIndex 贴纸索引值 * @returns */ addMaterialWithIndex(stickerIndex: number): Promise; /** * 设置贴纸 * @param materialZipUrl 贴纸资源包Url * @returns */ addMaterialWithUrl(materialZipUrl: string): Promise; /** * 移除贴纸 * @param stickerType 贴纸类型 * @returns */ removeMaterialWithType(stickerType: Assets.kResSticker): void; /** * 移除贴纸 * @param stickerIndex 贴纸索引值 * @returns */ removeMaterialWithIndex(stickerIndex: number): void; /** * 删除贴纸/贴图/实景抠图需要替换的背景 * @param materialZipUrl */ removeMaterialWithUrl(materialZipUrl: string): void; /** * @brief 展示人脸识别点位 * @param show 是否展示 */ showFaceDetectPoint(show: boolean): void; /** * @brief 展示人脸区域三角剖分线 * @param show 是否展示 */ showMakeupLine(show: boolean): void; /** * 显示人体关键点 * @param show 是否显示 */ showBodyDetectPoint(show: boolean): void; /** * 初始化AR写字模块 * @returns */ initArWriteResource(): Promise; /** * 开启Ar写字 * @param enable true: 开启 * @param mode 1: 写字, 2: 画画。 */ setArWriting(enable: boolean, mode: number): void; /** * 清除AR写字痕迹 */ cleanScreenArWriting(): void; /** * 设置引擎性能模式 * @param enable true:性能优先模式 */ setPowerSaving(enable: boolean): void; /** * Animoji初始化 * @param animojiUrl animoji资源地址 * @param width 宽 * @param height 高 * @param scale 放大尺寸 * @returns */ animojiInitialize(animojiUrl: string, width: number, height: number, scale: number): Promise; /** * 设置Animoji背景模式 * @param mode 背景模式:0:无,1:摄像头背景 2:指定背景图片 * @param backgroundImgUrl 背景图片,如果mode=2时需要指定 */ setAnimojiBackgroundWithMode(mode: kBackgroundProcessType, backgroundImgUrl: string): Promise; /** * 基于纹理ID渲染并返回纹理对象 * @param mediaElement 媒体对象 ImageData | ImageBitmap | VideoFrame * @param width 对象width * @param height 对象height * @returns 纹理对象 */ animojiRenderMediaObjectToRenderCanvas(mediaElement: ImageData | ImageBitmap | VideoFrame, width: number, height: number): Promise; /** * Animoji 图片渲染 * @param imageData 图片imageData * @param imageWidth 宽 * @param imageHeight 高 * @param renderCallBack 渲染回调 */ animojiRender(imageData: Uint8Array, imageWidth: number, imageHeight: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * Animoji渲染 * @param mediaObject 媒体对象 媒体对象 ImageData | ImageBitmap | VideoFrame * @param imageWidth 宽 * @param imageHeight 高 * @param renderCallBack 渲染回调 */ animojiRenderWithMediaObject(mediaObject: any, width: number, height: number, renderCallback: (outImageData: Uint8Array, imageWidth: number, imageHeight: number) => void): void; /** * Animoji渲染 * @param mediaObject 媒体对象 ImageData | ImageBitmap | VideoFrame * @param width 宽 * @param height 高 * @returns 渲染后纹理对象 */ animojiRenderMediaObjectToTexture(mediaObject: any, width: number, height: number): WebGLTexture | null; /** * Animoji渲染 * @param inTextureId 纹理ID * @param width 宽 * @param height 高 * @returns 渲染后纹理对象 */ animojiRenderTextureId(inTextureId: number, width: number, height: number): WebGLTexture | null; /** * Animoji大小调整 * @param scale 推荐:0.8~1. */ animojiResize(scale: number): void; /** * Animoji引擎注销 */ animojiDestroy(): void; engineDestory(): void; queenAssert(): void; assertMessage(result: boolean, message: string): void; } /** * 引擎参数配置 */ declare type SdkConfig = { /** * SDK License Key */ SdkLicenseKey: string; /** * SDK 域名 */ Domain?: string; /** * SDK初始化完成回调 * @param result 初始化结果 * @returns */ OnInit: (result: boolean) => void; /** * SDK 资源加载进展条 * @param progress 加载进度 * @returns */ OnProgress?: (progress: number) => void; /** * 人脸数据回调 * @param faceData 面部数据 * @returns */ OnFaceDetect?: (faceData: any) => void; /** * 资源文件buffer data */ AssetsBuffer?: ArrayBuffer; /** * 异常处理 * @param error 异常信息 * @returns */ OnError?: (error: any) => void; /** * 渲染使用的Canvas */ RenderCanvas?: HTMLCanvasElement; /** * 背景抠图模型 */ SegmentModel?: kQueenModelShapeType; /** * 美体模型 */ PoseModel?: kQueenModelShapeType; /** * 推理后端选择 */ InferenceBackend?: kBackendType; /** * 日志输出级别,保留字段 */ LogLevel?: kLogLevel; }; /** * 设置抠图背景处理类型 */ declare interface SegmentBackgroundProcess { /** * 背景处理方式 */ type?: kBackgroundProcessType; /** * 是否开启 */ enable: boolean; } /** * 设置背景图 */ declare interface SetSegmentBackgroundImage { /** 背景处理方式 */ type?: kBackgroundProcessType; /** 是否水平翻转 */ flipX?: boolean; /** 是否垂直翻转 */ flipY?: boolean; /** 抠图裁剪边距 */ padding?: number; /** 替换背景图片URL */ backgroundImgUrl?: string; /** 已载入资源的文件路径 */ backgroundImgPath?: string; } declare class WebGLUtil { private webglContext; private renderProgram; private glVertexBuff; private glTexBuff; private glVloc; private glTloc; private width; private height; constructor(gl: WebGLRenderingContext); /** * 载入Shader * @param gl * @param type * @param source * @returns */ loadShader(type: GLenum, source: string): WebGLShader | null; /** * 纹理绘制 * @param texture 纹理 * @param width * @param height * @returns */ drawTexture(texture: WebGLTexture, width?: number, height?: number): void; /** * 初始化纹理 * @returns */ createBlankTexture(width?: number, height?: number): WebGLTexture | null; getBufferSubData: (texture: WebGLTexture, width: number, height: number) => Uint8Array; /** * 创建纹理 * @param mediaSource TexImageSourceWebCodecs * @returns */ createMediaTexture(mediaSource: TexImageSourceWebCodecs): WebGLTexture | null; /** * 创建图片Buffer纹理 * @param imageData * @param width * @param height * @returns */ createBufferTexture(imageData: Uint8Array, width: number, height: number): WebGLTexture | null; /** * 更新纹理 * @param texture 纹理 * @param mediaSource */ updateTexture(texture: WebGLTexture, mediaSource: TexImageSourceWebCodecs): void; /** * 更新纹理 * @param textureId 纹理ID * @param imageBuffer 图片数据 * @param width 宽 * @param height 高 */ updateTextureData(texture: WebGLTexture, imageBuffer: Uint8Array, width: number, height: number): void; /** * 读取纹理图片 * @param textureId 纹理ID * @param width * @param height * @returns 返回图片buffer */ readPixels(texture: WebGLTexture, width: number, height: number): Uint8Array; } export { }