faceUnity

立即使用

概述

faceUnity封装了相芯科技的SDK,提供了美颜处理,创建道具,移除道具,更换道具,滤镜,美白磨皮等一系列影像处理功能

附加模块 附加模块制作

下载 faceUnityAppendixA 模块 zip 包并解压,把 zip 包内 target 目录下的authpack.h文件替换.该文件获取需要通过发送邮件至marketing@faceunity.com 咨询并获取,此文件是以证书形式获取,获取后将证书改名为authpack.h,用新的authpack.h替换target目录下面的旧文件。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。

init

初始化(仅android支持)

init({params}, callback(ret))

params

v3Path:

  • 类型:字符串类型
  • 描述:v3.bundle文件路径;支持fs、widget。

authdata:

  • 类型:字符串类型
  • 描述:密钥数组,base64字符串;必须配置好密钥,SDK才能正常工作

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status:,       //布尔类型
}

err:

  • 类型:JSON对象
  • 内部字段
    {
    msg:'',                  //错误信息
    }
    

示例代码

var faceUnity = api.require('faceUnity');
faceUnity.init({
    v3Path:'',
    authdata:'',
},function(ret,err){
     alert(JSON.stringify(ret));
})

可用性

Android系统

可提供的1.0.0及更高版本

open

打开

open({params}, callback(ret))

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)弹出模块的大小配置
  • 默认值:见内部字段
  • 内部字段:
{         
    x:0,                          //(可选项) 数字类型;控件左上角x坐标
    y:0,                          //(可选项)数字类型;控件左上角y坐标
    w: 100,                         //(可选项)数字类型;弹出模块的宽度;默认值:100
    h: 180                          //(可选项)数字类型;弹出模块的高度;默认值:180
}

beautyOn

  • 类型:布尔类型
  • 描述:是否开启美颜; (仅支持iOS)
  • 默认:false

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)(仅android支持)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔类型
  • 描述:(可选项)是否将模块视图固定到窗口上,不跟随窗口上下滚动(仅android支持)
  • 默认:false

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    eventType: 'show',  // 字符串类型;交互事件类型,取值范围如下:
                        // show:模块加载成功并显示在屏幕上的事件(show接口不会触发此事件)
                        // click:点击菜单列表项

    index: 0            // 数字类型;点击目标对应菜单列表项的索引,仅当 eventType 为 click 时有效
}

示例代码

var name = api.require('faceUnity');
name.open({
    rect:{
        x:0,
        y:0,
        w:100,
        h:100,
    },

},function(ret) {
    if (ret) {
       alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

faceBeautification

美颜处理 (仅支持安卓)

faceBeautification({params}, callback(ret))

beautyOn

  • 类型:布尔类型
  • 描述:是否开启美颜;
  • 默认:false

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status:            // 布尔类型;成功或失败
}

示例代码


var name = api.require('faceUnity');
name.faceBeautification(function(ret) {
    if (ret) {
       alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

creatItems

创建道具

creatItems({params}, callback(ret))

params

fileName:

  • 类型:字符串类型
  • 描述:道具文件的名称;(bundle类型的文件)(仅支持iOS)

filePath:

  • 类型:字符串类型
  • 描述:道具文件路径。(仅支持android)

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status:            // 布尔类型;成功或失败
    item:,            //数字类型;加载句柄,大于0为加载成功(仅android支持)
}

示例代码

var name = api.require('faceUnity');
name.creatItems({
    fileName:'change_face'
    filePath:'',
}, function(ret) {
    if (ret) {
       alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

destructionItem

移除某个道具

destructionItem({params}, callback(ret))

params

index:

  • 类型:数字类型
  • 描述:数据的索引

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status:            // 布尔类型;成功或失败
}

示例代码

var name = api.require('faceUnity');
name.destructionItem({
    index:0
}, function(ret) {
    if (ret) {
       alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

destructionAllItem

移除所有道具

destructionAllItem({params}, callback(ret))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status:            // 布尔类型;成功或失败
}

示例代码

var name = api.require('faceUnity');
name.destructionAllItem(function(ret) {
    if (ret) {
       alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

changeItem

更换某个道具

changeItem({params}, callback(ret))

params

index:

  • 类型:数字类型
  • 描述:数据的索引

fileName:

  • 类型:字符串类型
  • 描述:道具文件的名称;(bundle类型的文件)(仅iOS支持)

filePath:

  • 类型;字符串类型
  • 描述:道具文件路径,支持fs,widget(仅android支持)

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status:            // 布尔类型;成功或失败
    newItem:,     //数字类型;新句柄(仅android支持)
}

示例代码

var name = api.require('faceUnity');
name.changeItem({
    fileName:'change_face',
    index:0,
    filePath:'',
}, function(ret) {
    if (ret) {
       alert(JSON.stringify(ret));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFilter

设置滤镜

setFilter({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

filterName:

  • 类型:字符串类型
  • 描述:滤镜类型的名称
  • 默认:'origin'
    - origin    
    - delta     
    - electric  
    - slowlived 
    - tokyo
    - warm      
    - ziran     
    - danya     
    - fennen    
    - qingxin   
    - hongrun
    

filterLevel:

  • 类型:数字类型
  • 描述:滤镜程度;该参数的取值范围为[0, 1],0为无效果
  • 默认:1.0

示例代码

var name = api.require('faceUnity');
name.setFilter({
      index:0,  
      filterName:'qingxin',
      filterLevel:0.5
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setColorLevel

设置美白

setColorLevel({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

colorLevel:

  • 类型:数字类型
  • 描述:美白程度;该参数的推荐取值范围为0~1,0为无效果
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setColorLevel({
    index:0,
    colorLevel:1
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRedLevel

设置红润

setRedLevel({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

redLevel:

  • 类型:数字类型
  • 描述:红润程度;该参数的推荐取值范围为0~1,0为无效果
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setRedLevel({
      redLevel:1
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setExfoliat

设置磨皮

setExfoliat({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

blurLevel:

  • 类型:数字类型
  • 描述:指定磨皮程度。该参数的推荐exfoliatLevel取值范围为0.0~6.0,0.0为无效果,原则上不建议参数值大于6.0,不过如果超过6.0也将会继续加大磨皮效果

skinDetect:

  • 类型:数字类型
  • 描述:指定是否开启皮肤检测,开启后,将自动检测是否皮肤,是皮肤的区域将直接根据blurLevel指定的磨皮程度进行磨皮,非皮肤区域将减轻磨皮导致模糊的效果。该参数的推荐取值为0-1,0为无效果

nonshinBlurScale:

  • 类型:数字类型
  • 描述:指定开启皮肤检测后,非皮肤区域减轻磨皮导致模糊的程度。该参数范围是[0.0,1.0],0表示不磨皮,1表示完全磨皮,默认值为0.45。调整该参数需要先开启 skinDetect

heavyBlur:

  • 类型:数字类型
  • 描述:指定是否开启朦胧美肤功能。大于1开启朦胧美肤功能

blurBlendRatio:

  • 类型:数字类型
  • 描述:指定磨皮结果和原图融合率。该参数的推荐取值范围为0-1

示例代码

var name = api.require('faceUnity');
name.setExfoliat({
     index:0,
     blurLevel:3.0,
     skinDetect:1,
     nonshinBlurScale:1,
     heavyBlur:1,
     blurBlendRatio:0.5,

});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setEyeBright

设置亮眼

setEyeBright({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

eyeBright:

  • 类型:数字类型
  • 描述:亮眼程度;该参数的推荐取值范围为0~1,0为关闭该功能,0到1效果逐渐增强
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setEyeBright({
      eyeBright:1,
      index:0
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setToothWhiten

设置美牙

setToothWhiten({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

toothWhiten:

  • 类型:数字类型
  • 描述:亮眼程度;该参数的推荐取值范围为0~1,0为关闭该功能,0到1效果逐渐增强
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setToothWhiten({
      toothWhiten:1,
      index:0
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setBaseFaceShape

设置基本美型

setBaseFaceShape({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

faceShape:

  • 类型:数字类型
  • 描述:美型类别;支持四种基本美型
  • 默认:3
    - 0  //女神
    - 1  //网红
    - 2  //自然
    - 3  //默认
    

faceShapeLevel:

  • 类型:数字类型
  • 描述:控制变化到指定基础脸型的程度;该参数的取值范围为[0, 1]。0为无效果,即关闭美型,1为指定脸型
  • 默认:0

eyeEnlarging:

  • 类型:数字类型
  • 描述:控制眼睛大小;此参数受参数 faceShapeLevel 影响。该参数的推荐取值范围为[0, 1]。大于1为继续增强效果
  • 默认:0

cheekThinning:

  • 类型:数字类型
  • 描述:控制脸大小;此参数受参数 faceShapeLevel 影响。该参数的推荐取值范围为[0, 1]。大于1为继续增强效果
  • 默认:0

示例代码

var name = api.require('faceUnity');
name.setBaseFaceShape({
     faceShape:0,
     index:0,
      faceShapeLevel:1,
      eyeEnlarging:1,
      cheekThinning:1

});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFaceShapeCheekThinning

设置高级美型---瘦脸

setFaceShapeCheekThinning({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

cheekThinning:

  • 类型:数字类型
  • 描述:瘦脸的程度;范围0 - 1
  • 默认:0

示例代码

var name = api.require('faceUnity');
name.setFaceShapeCheekThinning({
      cheekThinning:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFaceShapeEyeEnlarging

设置高级美型---大眼

setFaceShapeEyeEnlarging({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

eyeEnlarging:

  • 类型:数字类型
  • 描述:大眼的程度;范围0 - 1
  • 默认:0

示例代码

var name = api.require('faceUnity');
name.setFaceShapeEyeEnlarging({
      cheekThinning:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFaceShapeIntensityForehead

设置高级美型---额头调整

setFaceShapeIntensityForehead({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

intensityForehead:

  • 类型:数字类型
  • 描述:额头调整的程度;大于0.5 变大,小于0.5变小
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setFaceShapeIntensityForehead({
      intensityForehead:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFaceShapeIntensityChin

设置高级美型---下巴调整

setFaceShapeIntensityChin({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

intensityChin:

  • 类型:数字类型
  • 描述:下巴调整的程度;大于0.5 变大,小于0.5变小
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setFaceShapeIntensityChin({
      intensityChin:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFaceShapeIntensityNose

设置高级美型---瘦鼻

setFaceShapeIntensityNose({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

intensityNose:

  • 类型:数字类型
  • 描述:瘦鼻调整的程度;0为正常大小,大于0开始瘦鼻,范围0 - 1
  • 默认:0

示例代码

var name = api.require('faceUnity');
name.setFaceShapeIntensityNose({
      intensityNose:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setFaceShapeIntensityMouth

设置高级美型---嘴型调整

setFaceShapeIntensityMouth({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

intensityMouth:

  • 类型:数字类型
  • 描述:嘴型调整的程度;大于0.5变大,小于0.5变小
  • 默认:0.5

示例代码

var name = api.require('faceUnity');
name.setFaceShapeIntensityMouth({
      intensityMouth:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

changeFrames

美颜美型突变过渡效果

changeFrames({params})

params

index:

  • 类型:数字类型
  • 描述:数据的索引(仅iOS支持)

changeFrames:

  • 类型:数字类型
  • 描述:渐变所需要的帧数;0 渐变关闭 ,大于0开启渐变

示例代码

var name = api.require('faceUnity');
name.changeFrames({
      changeFrames:1,
      index:0,
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本