Skip to main content
适用平台:WindowsLinux。所有 API 位于 facebetter 命名空间。
SDK 版本:1.3.1

日志相关

LogLevel

日志级别枚举。

LogConfig

日志配置结构体。 字段说明:
  • console_enabled:是否输出到控制台,默认 false
  • file_enabled:是否写入文件,默认 false
  • level:最低输出日志级别,默认 Info
  • file_name:日志文件路径(file_enabled = true 时有效),默认 ""

引擎相关

EngineConfig

引擎初始化配置结构体。 字段说明:
  • app_id:应用 ID,从控制台获取
  • app_key:应用密钥,从控制台获取
  • resource_pathresource.fbd 文件路径(支持相对或绝对路径)
  • license_json:离线/在线授权 JSON 字符串(可选)
  • external_context:是否使用外部 OpenGL 上下文,默认 false
验证优先级:
  1. license_json 不为空 → 使用 license JSON 验证(支持在线响应和离线授权)
  2. 否则 → 使用 app_id + app_key 进行联网验证

BeautyEffectEngine

美颜效果引擎主类。不可复制/赋值。

静态方法

SetLogConfig
设置 SDK 全局日志配置。必须在 Create 之前调用,否则引擎初始化期间的日志无法捕获。 返回值: 0 成功,非零失败。
Create
创建并初始化引擎实例。失败时返回 nullptr

参数设置

SetBeautyParam(基础美颜)
设置基础美颜参数。所有参数值范围 [0.0, 1.0]0 表示关闭该效果。
SetBeautyParam(美型)
SetBeautyParam(美妆)
SetLipstickStyle / SetBlushStyle
SetBeautyParam(绿幕抠图 ChromaKey)
SetVirtualBackground
设置虚拟背景效果。
SetSkinOnlyBeauty
设置美颜是否仅作用于皮肤区域。当启用时,美颜效果(磨皮、美白等)仅会应用于检测到的皮肤区域,非皮肤区域保持不变。

滤镜管理

SetFilter
应用指定滤镜。传入空字符串清除当前滤镜。
SetFilterIntensity
设置当前滤镜强度 [0.0, 1.0]
RegisterFilter
注册自定义滤镜资源(.fbd 文件路径或内存数据)。注册后即可通过 ID 使用。
UnregisterFilter / UnregisterAllFilters
卸载已注册的滤镜,释放相关资源。
GetRegisteredFilters
返回所有已注册滤镜的 ID 列表。

贴纸管理

SetSticker
应用指定贴纸。传入空字符串清除当前贴纸。
RegisterSticker
注册自定义贴纸资源(.fbd 文件路径或内存数据)。
UnregisterSticker / UnregisterAllStickers
GetRegisteredStickers

回调

SetCallbacks
注册引擎事件和数据回调。

图像处理

ProcessImage
对输入帧应用当前所有已配置的美颜效果,返回处理后的新帧。失败时返回 nullptr 输出格式: 引擎会尽量使输出格式与输入格式保持一致。

已废弃接口

已弃用以下接口在参数驱动模式下为空操作(no-op),保留仅为二进制兼容性,将在未来版本移除。

图像相关

Format

图像像素格式枚举。

Rotation

图像旋转角度枚举。

FrameType

帧类型枚举,通过 frame->type 字段设置。

ImageFrame

图像帧类,提供创建、转换和操作图像数据的功能。不可复制/赋值。 线程安全: ImageFrame 不保证线程安全,同一实例不应在多线程中同时调用 Rotate / Mirror / Convert 等操作。

静态创建方法

CreateWithFile
从图片文件创建帧,支持 JPEG、PNG、BMP。失败返回 nullptr
Create(通用方法)
从内存创建单平面格式帧(推荐用于 RGBA / BGRA / RGB / BGR)。
多平面 YUV 格式(I420/NV12/NV21)建议使用对应的专用方法。
CreateWithRGBA
从内存 RGBA 数据创建。
CreateWithBGRA
CreateWithRGB
CreateWithBGR
CreateWithI420
从 I420(YUV 4:2:0,3 平面)数据创建。
CreateWithNV12
从 NV12(Y + UV 交错)数据创建。
CreateWithNV21
从 NV21(Y + VU 交错)数据创建。
CreateWithTexture
从 OpenGL 纹理句柄创建帧(Format::Texture),用于 GPU 纹理输入。
CreateWithAndroid420
从 Android Camera2 YUV_420_888 格式创建(主要用于 Android 平台)。

图像操作方法

Rotate
原地旋转图像。返回 0 成功,非零失败。
Mirror
原地镜像图像。mode 值(不区分大小写):"horizontal""vertical""both"
SetMirror
设置镜像标志,仅在下次 ProcessImage 时由引擎执行镜像操作(避免额外的格式转换)。
传入空字符串 "" 清除标志。
Convert
将当前帧转换为指定格式,返回新的 ImageFrame。若目标格式与当前格式相同,返回共享底层 buffer 的等价帧。失败返回 nullptr
ToFile
将图像保存到文件。quality 为 JPEG 质量参数(1100),默认 90。返回 0 成功。

数据访问

公共字段


回调与事件

EngineEventCode

引擎事件码枚举。

EngineCallbacks

引擎回调函数集合结构体。

数据结构

Point2d

二维坐标点,坐标归一化到 [0.0, 1.0]

Rect

归一化矩形区域。

FaceDetectionResult

单张人脸的检测结果。 字段说明:
  • rect:人脸 ROI 区域(归一化矩形)
  • key_points:111 个归一化人脸关键点坐标(vector<Point2d>
  • visibility:111 个关键点的可见度评分 [0.0, 1.0]vector<float>
  • face_id:人脸唯一 ID(跨帧追踪),未检测到为 -1
  • face_action:人脸动作位掩码(如张嘴、眨眼),未检测到为 -1
  • score:人脸置信度 [0.0, 1.0]
  • pitch:俯仰角(上仰为负,下低为正),范围 [-π, π]
  • roll:翻滚角(左倾为负,右倾为正),范围 [-π, π]
  • yaw:偏航角(左转为负,右转为正),范围 [-π, π]
使用示例:

美颜参数枚举

BeautyType

beauty_params::Basic

beauty_params::Reshape

beauty_params::Makeup

beauty_params::ChromaKey

beauty_params::BackgroundMode

beauty_params::VirtualBackgroundOptions


使用注意事项

线程安全

BeautyEffectEngine 不是线程安全的,多线程环境下需要在调用侧加锁。

内存管理

所有工厂方法(CreateCreateWithXxx)返回 std::shared_ptr,内存由智能指针自动管理,无需手动释放。

数据只读

Data() 等返回的指针为只读指针,不可直接修改像素数据。需要修改时,应创建新的 ImageFrame

SetRenderView 不适用

该方法仅在 iOS / macOS 平台有效,Windows 和 Linux 上请勿调用。