Skip to main content

错误类

FacebetterError

Facebetter 错误类,继承自 Error 属性:
  • message: 错误消息
  • code: 错误代码(默认为 -1)
  • name: 错误名称(固定为 ‘FacebetterError’)
示例:

配置类

EngineConfig

引擎配置类,用于初始化美颜引擎。 构造函数:
参数:
  • config.appId (string, 可选): 应用 ID(如果未提供 licenseJson 则必需)
  • config.appKey (string, 可选): 应用密钥(如果未提供 licenseJson 则必需)
  • config.licenseJson (string, 可选): 许可证 JSON 字符串(如果提供,则不需要 appId 和 appKey)
  • config.externalContext (boolean, 可选): 是否使用外部 OpenGL 上下文(Web/WASM 环境下该字段保留用于对齐配置结构,但当前实现中不会生效)
方法:
  • isValid(): 验证配置是否有效
  • toString(): 返回配置的字符串表示
验证方式优先级:
  • 如果 licenseJson 不为空,使用授权数据验证(支持在线响应和离线授权)
  • 否则使用 appIdappKey 进行自动联网验证
示例:

枚举类型

BeautyType

美颜类型枚举。

BasicParam

基础美颜参数枚举。

ReshapeParam

面部重塑参数枚举。

MakeupParam

美妆参数枚举。

LipstickStyle

口红样式枚举。

BlushStyle

腮红样式枚举。

MirrorMode

镜像模式枚举,在处理前应用于输入。

资源管理

  • setFilter(filterId): 设置滤镜
    • 参数:filterId (string) 滤镜唯一标识符。传入空字符串可清除。
  • setFilterIntensity(intensity): 设置滤镜强度
    • 参数:intensity (number) 强度值,范围 [0.0, 1.0]。
  • setSticker(stickerId): 设置贴纸
    • 参数:stickerId (string) 贴纸唯一标识符。传入空字符串可清除。
  • registerFilter(filterId, resource): 注册滤镜
    • 参数:
      • filterId (string): 滤镜唯一标识符
      • resource (string|Uint8Array): 资源路径(.fbd 文件)或 Uint8Array 数据
  • registerSticker(stickerId, resource): 注册贴纸
    • 参数:
      • stickerId (string): 贴纸唯一标识符
      • resource (string|Uint8Array): 资源路径(.fbd 文件)或 Uint8Array 数据
  • unregisterFilter(filterId): 卸载滤镜
  • unregisterAllFilters(): 卸载所有滤镜
  • unregisterSticker(stickerId): 卸载贴纸
  • unregisterAllStickers(): 卸载所有贴纸
  • getRegisteredFilters(): 获取已注册滤镜列表
    • 返回: string[]
  • getRegisteredStickers(): 获取已注册贴纸列表
    • 返回: string[]

FrameType

图像帧类型枚举。

BackgroundMode

背景模式枚举。

VirtualBackgroundOptions

虚拟背景选项类,用于设置虚拟背景参数。 构造函数:
参数:
  • options (Object, 可选): 选项对象
    • mode (BackgroundMode, 可选): 背景模式,默认为 BackgroundMode.None
    • backgroundImage (ImageData|HTMLImageElement|HTMLCanvasElement, 可选): 背景图片,当 mode 为 Image 时必需
方法:
  • isValid(): 验证选项是否有效
    • 返回: boolean
    • 当 mode 为 Image 时,会检查 backgroundImage 是否存在
示例:

引擎类

BeautyEffectEngine

美颜效果引擎主类,提供美颜功能的入口。 构造函数:
参数:
  • config (EngineConfig): 引擎配置对象
实例方法:

初始化

  • init(options): 初始化引擎
    • 参数:
      • options (Object, 可选): 初始化选项
        • timeout (number, 可选): WASM 模块加载超时时间(毫秒),默认 30000
        • authTimeout (number, 可选): 在线认证超时时间(毫秒),默认 10000
    • 返回: Promise<void>
    • 示例:
  • setLogConfig(config): 设置日志配置
    • 参数:
      • config.consoleEnabled (boolean, 可选): 是否启用控制台日志,默认 false
      • config.fileEnabled (boolean, 可选): 是否启用文件日志,默认 false(浏览器环境不支持)
      • config.level (number, 可选): 日志级别(0=DEBUG, 1=INFO, 2=WARN, 3=ERROR),默认 0
      • config.fileName (string, 可选): 日志文件名,默认空字符串
    • 返回: Promise<void>
    • 注意: 可以在 init() 之前或之后调用,但建议在 init() 之前调用

参数设置

  • setBasicParam(param, value): 设置基础美颜参数
    • 参数:
      • param (BasicParam): 参数类型
      • value (number): 参数值,范围 [0.0, 1.0](浮点数)
    • 返回: void
    • 示例: engine.setBasicParam(BasicParam.Whitening, 0.5);
  • setReshapeParam(param, value): 设置面部重塑参数
    • 参数:
      • param (ReshapeParam): 参数类型
      • value (number): 参数值,范围 [0.0, 1.0](浮点数)
    • 返回: void
    • 示例: engine.setReshapeParam(ReshapeParam.FaceThin, 0.5);
  • setMakeupParam(param, value): 设置美妆参数
    • 参数:
      • param (MakeupParam): 参数类型
      • value (number): 参数值,范围 [0.0, 1.0](浮点数)
    • 返回: void
    • 示例: engine.setMakeupParam(MakeupParam.Lipstick, 0.5);
  • setLipstickStyle(style): 设置口红样式
    • 参数:
      • style (LipstickStyle): 口红样式
    • 返回: void
    • 示例: engine.setLipstickStyle(LipstickStyle.Rouge);
  • setBlushStyle(style): 设置腮红样式
    • 参数:
      • style (BlushStyle): 腮红样式
    • 返回: void
    • 示例: engine.setBlushStyle(BlushStyle.Classic);
  • setSkinOnlyBeauty(enabled): 设置美颜是否仅作用于皮肤区域
    • 参数:
      • enabled (boolean): true 启用皮肤区域美颜,false 美颜作用于整张图像
    • 返回: void
    • 示例:
  • setVirtualBackground(options): 设置虚拟背景(统一接口,与其他平台一致)
    • 参数:
      • options (VirtualBackgroundOptions|Object): 虚拟背景选项
        • mode (BackgroundMode): 背景模式(None、Blur、Image)
        • backgroundImage (ImageData|HTMLImageElement|HTMLCanvasElement, 可选): 背景图片(当 mode 为 Image 时必需)
    • 返回: void
    • 示例:

图像处理

  • processImage(input, width, height, frameType, mirrorMode): 处理图像
    • 参数:
      • input (ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | Uint8ClampedArray): 输入图像
      • width (number, 可选): 图像宽度
        • inputImageData 时:可选(会自动使用 imageData.width
        • inputHTMLImageElementHTMLVideoElement 时:可选(会自动获取元素尺寸)
        • inputUint8ClampedArray 时:必需
      • height (number, 可选): 图像高度
        • inputImageData 时:可选(会自动使用 imageData.height
        • inputHTMLImageElementHTMLVideoElement 时:可选(会自动获取元素尺寸)
        • inputUint8ClampedArray 时:必需
      • frameType (FrameType, 可选): 帧类型,默认为 FrameType.Video
      • mirrorMode (MirrorMode, 可选): 处理前应用于输入的镜像模式,默认为 MirrorMode.None
    • 返回: ImageData(同步返回,非 Promise)
    • 示例:

资源管理

  • destroy(): 销毁引擎并释放资源
    • 返回: void
    • 注意: 在不再使用引擎时调用,释放内存和 WASM 资源
    • 示例: engine.destroy();

使用示例

完整示例

已废弃接口 (Deprecated APIs)

已弃用以下接口已弃用。

美颜类型控制

  • setBeautyTypeEnabled(beautyType, enabled)
    • 说明: [已弃用] 启用或禁用美颜类型(参数驱动模式下无效果)
    • 返回值: void
  • isBeautyTypeEnabled(beautyType)
    • 说明: [已弃用] 检查美颜类型是否已启用(始终返回 false)
    • 返回值: false
  • disableAllBeautyTypes()
    • 说明: [已弃用] 禁用所有美颜类型(请通过置零参数重置效果)
    • 返回值: void