设置特效
SDK 内置提供美颜、滤镜、特效几类效果,均支持 Web 端与微信小程序;其中滤镜和特效需要先获取到素材列表再通过素材的 EffectId 在 SDK 中设置。
美颜
除了初始化时可以传入美颜参数,也可以通过 ArSdk 的
setBeautify
方法设置美颜。SDK 目前支持的美颜效果有:
type BeautifyOptions = {whiten?: number; // 美白 0-1dermabrasion?: number; // 磨皮0-1lift?: number; // 窄脸0-1shave?: number; // 削脸0-1eye?: number; // 大眼0-1chin?: number; // 下巴0-1// 注意:以下参数仅在1.0.11及以上版本可用darkCircle?: number; // 黑眼圈0-1nasolabialFolds?: number; // 法令纹0-1cheekbone?: number; // 颧骨0-1head?: number; // 小头0-1eyeBrightness?: number; // 亮眼0-1lip?: number; //嘴唇 -1 - 1forehead?: number; //发际线 0-1nose?: number; // 鼻子 -1 - 1usm?: number; // 清晰 0-1}
调用 SDK 实例的
setBeautify
方法设置美颜参数:sdk.setBeautify({whiten: 0.2,dermabrasion: 0,lift: 0.3,shave:0.1,eye: 0.9,chin: 0,……})
滤镜
由于制作滤镜图的成本较高,我们提供了一些内置滤镜供您直接使用。
1. 获取内置滤镜列表:
const filterList = await sdk.getCommonFilter()
2. 设置滤镜:
sdk.setFilter(filterList[0].EffectId, 0.5)
特效
// 获取内置特效// 默认返回内置美妆和贴纸素材,通过Label参数可以指定返回特定类型的素材const presetEffectList = await sdk.getEffectList({Type: 'Preset'// Label: ['贴纸'] 只返回内置贴纸})// 获取自制特效const customEffectList = await sdk.getEffectList({Type: 'Custom'})// 传入列表请求参数const lipList = await sdk.getEffectList({PageNumber: 0,PageSize: 10,Name: '',Label: ['唇妆'], // 用特效的标签筛选Type: 'Custom'})const eyeList = await sdk.getEffectList({PageNumber: 0,PageSize: 10,Name: '',Label: ['眼妆'], // 用特效的标签筛选Type: 'Custom'})// 设置特效sdk.setEffect([lipList[0].EffectId, eyeList[0].EffectId])// 设置特效+强度sdk.setEffect([{id: lipList[0].EffectId,intensity: 0.5},{id: eyeList[0].EffectId,intensity: 0.7})// 单独设置特效中的滤镜强度sdk.setEffect([{id: lipList[0].EffectId,intensity: 0.5,filterIntensity: 0},{id: eyeList[0].EffectId,intensity: 0.7,filterIntensity: 1})
注意:
由于特效制作工具支持在特效中添加滤镜,当多个特效叠加时,滤镜默认采用叠加处理,如需要单独控制,可使用 filterIntensity 单独控制。
关闭美颜
由于 AI 检测的性能消耗较大,为了尽可能节约资源。当 SDK 没有设置任何美颜与特效效果的时候,会自动关闭 AI 检测,再次设置效果后自动开启。
// 清空SDK设置的所有效果即可关闭检测sdk.setBeautify({whiten: 0,dermabrasion: 0,lift: 0,shave:0,eye: 0,chin: 0,……})sdk.setEffect('')