tencent cloud

文档反馈

设置美颜和特效

最后更新时间:2024-05-08 16:30:10
    SDK 内置提供美颜滤镜特效几类效果,均支持 Web 端与微信小程序;其中滤镜和特效需要先获取到素材列表再通过素材的 EffectId 在 SDK 中设置。

    美颜

    除了初始化时可以传入美颜参数,也可以通过 ArSdk 的 setBeautify 方法设置美颜。
    SDK 目前支持的美颜效果有:
    type BeautifyOptions = {
    whiten?: number; // 美白 0-1
    dermabrasion?: number; // 磨皮0-1
    lift?: number; // 窄脸0-1
    shave?: number; // 削脸0-1
    eye?: number; // 大眼0-1
    chin?: number; // 下巴0-1
    // 注意:以下参数仅在1.0.11及以上版本可用
    darkCircle?: number; // 黑眼圈0-1
    nasolabialFolds?: number; // 法令纹0-1
    cheekbone?: number; // 颧骨0-1
    head?: number; // 小头0-1
    eyeBrightness?: number; // 亮眼0-1
    lip?: number; //嘴唇 -1 - 1
    forehead?: number; //发际线 0-1
    nose?: number; // 鼻子 -1 - 1
    usm?: 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)

    特效

    您可以直接在 SDK 中设置您在 控制台 上制作的特效,也可以使用我们提供的内置效果。相关教程请参见 素材制作基础
    // 获取内置特效
    // 默认返回内置美妆和贴纸素材,通过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('')
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持