Skip to main content
本文档对应 SDK 2.0.0。授权见 授权认证。美妆 / 美型枚举见 参数枚举

添加 SDK 依赖

方法 A:CocoaPods(推荐)

Xcode 15+ 编译错误使用 Xcode 15 或更高版本时,编译可能出现 Sandbox: rsync.samba deny(1)。这是 User Script Sandboxing 导致的。解决方法:
  1. 在 Xcode 中选择 Project
  2. 打开 Build Settings
  3. 搜索 ENABLE_USER_SCRIPT_SANDBOXING
  4. 将值从 Yes 改为 No

方法 B:手动集成 Framework

前往 下载 获取 SDK,将 Facebetter.framework 拷入工程,并按 嵌入动态库Embed 设为 Embed & Sign
Xcode 链接库

权限

仅在使用相机采集时,于 Info.plist 添加:

导入头文件

日志配置

默认关闭日志。必须在创建引擎之前调用 setLogConfig:

创建引擎

绑定 iOS Bundle ID,然后传入 licenseTokenappId + appKey。见 获取 AppID 和 AppKey授权认证 优先级: licenseToken 非空(许可证 token、{token} JSON 或 .lic 内容)时本地校验;否则用 appId + appKey 请求 /facebetter/v2/auth
createEngineWithConfig: 返回的是实例,不是单例。

美肤

强度一般为 [0.0, 1.0]。风格枚举见 参数枚举

仅皮肤区域

开启后,磨皮 / 美白 / 红润只作用在检测到的皮肤上。

美型

setReshape:intensity: 范围为 [-1.0, 1.0]0 关闭。参数:FBReshape_FaceThinFBReshape_BrowThickness025)。含义见 参数枚举

美妆

强度、形状、色号分开设置。完整预设见 参数枚举

虚拟背景

默认遮罩为人像分割。模糊强度 [0.0, 1.0]0 清除模糊。图片路径必须是非空 png/jpg。

色键

色键只替换遮罩。填充仍是模糊或替换图。

滤镜与贴纸

传入 .fbd 文件路径或内存字节。

回调与统计

处理图像

FBImageFrame 支持 I420、NV12、NV21、RGB、RGBA、BGR、BGRA、文件、纹理和 UIImage
先设 type,再调用 processImage:(没有额外的模式参数)。输出格式与输入一致。
FBFrameTypeVideo 用于实时流,FBFrameTypeImage 用于静图。
旋转 / 镜像 / 转换 / 保存:
YUV 平面:dataYdataUdataVdataUV 以及 strideY / strideU / strideV / strideUV

外部纹理

在 OpenGL ES 线程创建引擎,并设置 externalContext = YES。输入输出纹理必须共享该上下文。
建议纹理参数:GL_LINEARGL_CLAMP_TO_EDGE。引擎不会删除你的输入纹理。输出纹理由 SDK 持有。

生命周期

会话期间用 strong 引用持有引擎。ViewController 销毁时置 nil。离开页面时停止采集,从而停止调用 processImage:

相关文档