///
///
/**
* 高级美颜配置
*/
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 { }