tutu

来自于:AC模块工作室

概述

tutu模块封装了TuSDK(涂图),是移动端图像处理的一站式解决方案,它全面覆盖相机拍照、图片编辑、人像美化、贴纸装饰、实时滤镜等需求。

使用本模块需要到官方网站,并申请开通图片编辑功能,注册应用并申请appSecret.

注意事项:

1.每个应用的包名(Bundle Identifier)、密钥、资源包(滤镜、贴纸等)三者需要匹配,否则将会报错

2.资源包使用的时候需要注意

  • 1、ios注意事项(动态配置资源包):下载tutures模块zip包并解压,找到target目录下TuSDK.bundle,将官网下载下来的滤镜贴纸等资源文件和用户权限的配置文件替换, SDK 使用的 UI 图片文件无需替换(ui_default,ui_geeV2),然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块
  • 2、android注意事项(动态配置资源包):
    • (1) 下载tutuAppendix模块zip包并解压(解压后会看到一个tutuAppendix文件夹)
    • (2) 将文件夹中的source目录下的tutuAppendix.jar解压(会看到一个\assets\TuSDk.bundle目录)
    • (3) 从涂图官网下载资源包(others、stickers、textures、brushes),将这四个文件夹替换掉第(2)步解压出来的TuSDk.bundle文件夹下的资源,并重新将assets打成jar包(命名成tutuAppendix.jar),替换掉之前的jar包。

3.如果不进行替换,则会报错

4.因为iOS的特殊性,需要在云编译或者自定义loader的时候勾选相机、相册、以及位置权限,否则会导致崩溃

配置 config.xml 文件:

使用此模块前需先配置 config.xml文件,方法如下:

  • 名称:tutu
  • 参数:appKey
  • 配置示例:

      ```js
      <feature name="tutu">
      <param name="appKey" value="e65e2b0e2aedf52c-05-bujkr1" />
      </feature>
      ```
    
  • 字段描述:

    appKey:(必须配置)在 涂图 开放平台创建的应用的 appKey

init

初始化tutu

init(param, callback(ret))

params

appSecret:

  • 类型:字符串
  • 默认值:无
  • 描述:应用的secret

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:初始化状态
  • 内部字段:
{
    status: true,        //布尔类型;初始化是否成功
}

示例代码

var param = {
    appSecret:'***********'
};

var tutu = api.require('tutu');
tutu.init(param, function(ret){
    alert(JSON.stringify(ret));
});

可用性

Android系统(4.0及以上)

可提供的1.0.0及更高版本

openCamera

打开相机

openCamera(param, callback(ret))

params

isSaveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和isSaveToAlbum同时为true
  • 默认值:false

isSaveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 保存到系统相册;
  • 注意:此字段不可以和isSaveToTemp同时为true
  • 默认值:false

avPostion:

  • 类型:字符串类型
  • 描述:(可选项) 相机方向;
  • 取值范围: back : 后置摄像头 front :前置摄像头
  • 默认值:back

flashMode:

  • 类型:字符串类型
  • 描述:(可选项) 闪光灯模式;
  • 取值范围: auto : 自动 always :总是打开 off :关闭 on :打开 redeye :red eye torch:Torch
  • 默认值:off

enableFilters:

  • 类型:布尔类型
  • 描述:(可选项) 是否开启滤镜支持;
  • 默认值:false

showFilterDefault:

  • 类型:布尔类型
  • 描述:(可选项) 是否默认显示滤镜视图,如果已经设置了 enableFilters, 那么 showFilterDefault 将失效;
  • 默认值:false

groupFilterCellWidth:

  • 类型:数字类型
  • 描述:(可选项) 滤镜组行视图宽度;
  • 默认值:60

filterBarHeight:

  • 类型:数字类型
  • 描述:(可选项) 滤镜组选择栏高度;
  • 默认值:80

filterGroup:

  • 类型:数组类型
  • 描述:(可选项) 设置需要显示的滤镜名称列表;配置的名称为滤镜的名称

saveLastFilter:

  • 类型:布尔类型
  • 描述:(可选项) 是否保存最后一次使用的滤镜
  • 默认值:true

autoSelectGroupDefaultFilter:

  • 类型:布尔类型
  • 描述:(可选项) 设置滤镜组自动选择默认滤镜
  • 默认值:true

enableFiltersHistory:

  • 类型:布尔类型
  • 描述:(可选项) 开启用户滤镜历史记录
  • 默认值:true

enableOnlineFilter:

  • 类型:布尔类型
  • 描述:(可选项) 开启在线滤镜
  • 默认值:true

displayFiltersSubtitles:

  • 类型:布尔类型
  • 描述:(可选项) 是否显示滤镜标题视图
  • 默认值:true

enableLongTouchCapture:

  • 类型:布尔类型
  • 描述:(可选项) 开启长按拍摄
  • 默认值:true

regionViewColor:

  • 类型:字符串类型
  • 描述:(可选项) 视频覆盖区域颜色
  • 默认值:#FF000000

disableMirrorFrontFacing:

  • 类型:布尔类型
  • 描述:(可选项) 禁用前置摄像头自动水平镜像
  • 默认值:false

enableCaptureWithVolumeKeys:

  • 类型:布尔类型
  • 描述:(可选项) 是否允许音量键拍照
  • 默认值:false

displayGuideLine:

  • 类型:布尔类型
  • 描述:(可选项) 是否显示辅助线
  • 默认值:false

enableNormalFilter:

  • 类型:布尔类型
  • 描述:(可选项) 开启无效果滤镜
  • 默认值:true

ratioType:

  • 类型:字符串类型
  • 描述:(可选项) 视频视图显示比例类型,如果设置cameraViewRatio > 0, 将忽略RatioType
  • 默认值:all
  • 取值范围
    • all:所有比例
    • 16_9: 16:9比例
    • 1_1: 1:1比例
    • 2_3: 2:3比例
    • 3_2: 3:2比例
    • 3_4: 3:4比例
    • 4_3: 4:3比例
    • 9_16: 9:16比例
    • default:默认显示的比例
    • orgin:原始比例

enablePreview:

  • 类型:布尔类型
  • 描述:(可选项) 设置拍照完成后是否开启预览功能
  • 默认值:false

enableFaceDetection:

  • 类型:布尔类型
  • 描述:(可选项) 是否开启脸部追踪(需要相机人脸追踪权限,请访问tusdk.com 控制台开启权限)
  • 默认值:false

waterMarkOption:

  • 类型:JSON对象
  • 描述:(可选项)水印图片配置
  • 内部字段:
imgPath:'fs://'    //(可选项) 字符串类型;图片路径;(android不支持widget,http) imgPath和markText二者必须要有一个被选;

markMargin:20       //(可选项) 数字类型;水印距离图片边距;默认值6

markPosition:'BottomRight'  //(可选项) 字符串类型;水印位置,默认值:BottomRight;取值范围:BottomRight(右下角),BottomLeft(左下角),Center(居中显示),TopRight(右上角),TopLeft(左上角)

markText:'apicloud'  //(可选项) 字符串类型;水印文字;imgPath和markText二者必须要有一个被选;

markTextColor:'#FFFFFF' //(可选项) 字符串类型;文字颜色;默认值:#FFFFFF

markTextPadding:2    //(可选项) 数字类型;文字图片间距;默认值:2

markTextPosition:‘Right’ //(可选项) 字符串类型;水印位置;默认值:Right;取值范围:Right(文字在右边),Left(文字在左边)

markTextShadowColor:'#000000'  //(可选项) 字符串类型;文字阴影颜色;默认值:#000000

markTextSize:14   //(可选项) 数字类型;文字大小;

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:图片信息
  • 内部字段:
status:true;       //布尔类型;返回状态
albumPath:''       //字符串;保存到相册的路径,当设置isSaveToAlbum:true时,albumPath会有值
imagePath:''       //字符串类型;临时文件路径
metadata:{}        //json类型;图片EXIF信息, (android不支持)
filterCode:''      //字符串;滤镜代号(iOS不支持)
imgWidth:          //数字类型;图片的宽(iOS不支持)
imgHeight:         //数字类型;图片的高(iOS不支持)
createTime:        //数字类型;图片创建的时间,单位毫秒;(android注意:当设置isSaveToAlbum:true时,albumPath会有值)
id:                //数字类型;图片编号(iOS不支持)(android注意:当设置isSaveToAlbum:true时,albumPath会有值)

示例代码

var param = {
    showFilterDefault:true
};
var tutu = api.require('tutu');
tutu.openCamera(param, function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

editPicture

编辑图片(单图编辑)

editPicture(params, callback(ret))

params

imgPath:

  • 类型:字符串
  • 描述:(可选项) 图片路径,要求本地路径(fs:// )(android也会支持widget://)。若不传或为空,则会打开相册进行选图

disableModules:

  • 类型:数组类型
  • 描述:(可选项)需要禁用的功能;如果不写此项或者长度为0,表示全部功能启用
  • 取值范围:
    • filter //滤镜
    • sticker //贴纸
    • text //文字
    • skin //美颜
    • cuter //裁剪
    • adjust //调整
    • aperture //光圈
    • holylight //圣光
    • vignette //暗角
    • sharpness //锐化

initModule:

  • 类型:字符串类型
  • 描述:(可选项) 页面初始化时需要打开的功能,如果无此项,需要手动点开 注意:该参数仅支持安卓,如果iOS想使用此功能,请使用editPictureSpecifiedFunction接口
  • 取值范围:
    • filter //滤镜
    • sticker //贴纸
    • text //文字
    • skin //美颜
    • cuter //裁剪
    • adjust //调整
    • aperture //光圈
    • holylight //圣光
    • vignette //暗角
    • sharpness //锐化

skinValue

  • 类型:数字
  • 描述:(可选项) 初始化美颜的程度;取值范围: 0--100的整数(ios不支持)
  • 默认值:100

saveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 保存到系统相册;
  • 注意:此字段不可以和isSaveToTemp同时为true
  • 默认值:false

saveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和isSaveToAlbum同时为true
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:图片信息
  • 内部字段:
status:true;   //布尔类型;返回状态
albumPath:''   //字符串;保存到相册的路径(ios上表示沙盒路径),当设置saveToAlbum:true时,albumPath会有值
imagePath:''   //字符串;临时文件路径,当设置saveToTemp:true时,imagePath会有值
imgWidth:      //数字类型;图片的宽(ios不支持)
imgHeight:     //数字类型;图片的高(ios不支持)
createTime:    //数字类型;图片创建的时间,单位毫秒,当设置saveToAlbum:true时,createTime会有值
id:            //数字类型;图片编号(ios不支持)

示例代码

var param = {
    imgPath:'/storage/emulated/0/DCIM/tuSDK/LSQ_20171128_111138585.jpg'
};
var tutu = api.require('tutu');
tutu.editPicture(param, function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

multiPictureEdit

多图编辑

multiPictureEdit(callback(ret))

params

maxSelection:

  • 类型:数字类型
  • 描述:(可选项) 照片美化最大可编辑数量 和 多选相册选择的最大照片数量必须保持一致

saveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 保存到系统相册;
  • 注意:此字段不可以和saveToTemp同时为true (iOS不支持)
  • 默认值:false

saveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和saveToAlbum同时为true (iOS不支持)
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:编辑图片的返回对象
  • 内部字段
status:true;    //布尔类型;返回状态
imgPaths:[]     //数组,路径集合(iOS不支持)
selectedPaths:''//数组,被选择路径的集合(android不支持)
albumPaths:[]   //数组类型;被保存在相册的图片路径的集合,当设置saveToAlbum:true时,albumPath会有值(android不支持)

示例代码

var tutu = api.require('tutu');
tutu.multiPictureEdit(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

editAndCutPicture

裁剪 + 滤镜组件

editAndCutPicture(callback(params,ret))

params

enableFilters:

  • 类型:布尔类型
  • 描述:(可选项) 是否开启滤镜支持;
  • 默认值:false

enableFilterHistory:

  • 类型:布尔类型
  • 描述:(可选项) 是否开启滤镜历史记录;
  • 默认值:true

enableOnlineFilter:

  • 类型:布尔类型
  • 描述:(可选项) 是否开启在线滤镜;
  • 默认值:true

displayFilterSubtitles:

  • 类型:布尔类型
  • 描述:(可选项) 是否显示滤镜标题视图;
  • 默认值:true

showResultPreview:

  • 类型:布尔类型
  • 描述:(可选项) 是否显示处理结果预览图 ;
  • 默认值:false

isRenderFilterThumb:

  • 类型:布尔类型
  • 描述:(可选项) 是否渲染滤镜封面 (使用设置的滤镜直接渲染,需要拥有滤镜列表封面设置权限,请访问TuSDK.com控制台);
  • 默认值:true

saveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 是否保存到系统相册;
  • 默认值:false

saveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和saveToAlbum同时为true
  • 默认值:false

cutSize:

  • 类型:json类型
  • 描述:(可选项) 需要裁剪的长宽;
{
  w:640,   //数字类型;宽度
  h:640    //数字类型;高度
}

callback(ret)

ret

  • 类型:JSON对象
  • 描述:编辑图片的返回对象
  • 内部字段
status:true;       //布尔类型;返回状态
albumPath:''       //字符串;保存到相册的路径,当设置
saveToAlbum:true时,albumPath会有值
imagePath:''       //字符串;临时图片的路径,当设置
saveToTemp:true时,imagePath会有值
filterCode:''      //字符串;滤镜代号,当设置saveToAlbum:true时,albumPath会有值

示例代码

var tutu = api.require('tutu');
tutu.editAndCutPicture(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

editAvatar

头像编辑

editAvatar(callback(params,ret))

params

filterGroup:

  • 类型:数组类型
  • 描述:(可选项) 需要显示的滤镜名称列表;
  • 默认值:如果为空将显示所有自定义滤镜

autoDismissWhenCompelted:

  • 类型:布尔类型
  • 描述:(可选项) 是否在组件执行完成后自动关闭组件;
  • 默认值:false

saveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 是否保存到系统相册;
  • 默认值:false

saveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和saveToAlbum同时为true
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:编辑图片的返回对象
  • 内部字段
status:true;       //布尔类型;返回状态
albumPath:''       //字符串;保存到相册的路径,当设置
saveToAlbum:true时,albumPath会有值
imagePath:''       //字符串;临时图片的路径,当设置
saveToTemp:true时,imagePath会有值
filterCode:''      //字符串;滤镜代号
createTime:        //数字类型;图片创建的时间,单位毫秒,单位毫秒,当设置saveToAlbum:true时,createTime会有值

示例代码

var tutu = api.require('tutu');
tutu.editAvatar(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

editAdvanced

裁剪+滤镜+贴纸组件

editAdvanced(callback(params,ret))

params

autoDismissWhenCompelted:

  • 类型:布尔类型
  • 描述:(可选项) 是否在组件执行完成后自动关闭组件;
  • 默认值:false

autoPushViewController:

  • 类型:布尔类型
  • 描述:(可选项) SDK 内部组件采用了一致的界面设计,会通过 push 方式打开视图。如果用户开启了该选项,在调用时可能会遇到布局不兼容问题,请谨慎处理, android不支持;
  • 默认值:false

saveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 是否保存到系统相册;
  • 默认值:false

saveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和saveToAlbum同时为true
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:编辑图片的返回对象
  • 内部字段
status:true;       //布尔类型;返回状态
albumPath:''       //字符串;保存到相册的路径,当设置
saveToAlbum:true时,albumPath会有值
imagePath:''       //字符串;临时图片的路径,当设置
saveToTemp:true时,imagePath会有值
filterCode:''      //字符串;滤镜代号
createTime:        //数字类型;图片创建的时间,单位毫秒,单位毫秒,当设置saveToAlbum:true时,createTime会有值

示例代码

var tutu = api.require('tutu');
tutu.editAvatar(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

openAlbum

打开相册

openAlbum(callback(ret))

params

autoDismissWhenCompelted:

  • 类型:布尔类型
  • 描述:(可选项) 是否在组件执行完成后自动关闭组件;
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:编辑图片的返回对象
  • 内部字段
status:true;   //布尔类型;返回状态
imgPath:''     //字符串,图片路径

示例代码

var tutu = api.require('tutu');
tutu.openAlbum(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

openMultiAlbum

打开多选相册

openMultiAlbum(params, callback(ret))

params

  • maxCount

  • 类型:数字

  • 描述:(可选项)最多选择的数量(maxCount <= 9)
  • 默认值: 9

autoDismissWhenCompelted:

  • 类型:布尔类型
  • 描述:(可选项) 是否在组件执行完成后自动关闭组件;
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:编辑图片的返回对象
  • 内部字段
status:true;   //布尔类型;返回状态
imgPaths:[]    //数组,图片路径

示例代码

var tutu = api.require('tutu');
tutu.openMultiAlbum(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统(4.0及以上)

可提供的1.0.0及更高版本

editPictureSpecifiedFunction

编辑图片直接可以进到指定功能 此接口仅支持iOS,如果安卓想使用此功能,请使用editPicture接口

editPictureSpecifiedFunction(params, callback(ret))

params

imgPath:

  • 类型:字符串
  • 描述:(可选项) 图片路径,要求本地路径(fs:// )。若不传或为空,则会打开相册进行选图

initModule:

  • 类型:字符串类型
  • 描述:(可选项) 页面初始化时需要打开的功能
  • 取值范围:
    • filter //滤镜
    • sticker //贴纸
    • text //文字
    • skin //美颜
    • cuter //裁剪
    • adjust //调整
    • aperture //光圈
    • holylight //圣光
    • vignette //暗角
    • sharpness //锐化

saveToAlbum:

  • 类型:布尔类型
  • 描述:(可选项) 是否保存到系统相册;
  • 默认值:false

saveToTemp:

  • 类型:布尔类型
  • 描述:(可选项) 保存到临时文件;
  • 注意:此字段不可以和saveToAlbum同时为true
  • 默认值:false

callback(ret)

ret

  • 类型:JSON对象
  • 描述:图片信息
  • 内部字段:
status:true;   //布尔类型;返回状态
albumPath:''   //字符串;保存到相册的路径(ios上表示沙盒路径);当saveToAlbum为 true时,则返回该参数
imagePath:''       //字符串;临时图片的路径,当设置
saveToTemp:true时,imagePath会有值

示例代码

var param = {
    imgPath:''
};
var tutu = api.require('tutu');
tutu.editPictureSpecifiedFunction(param, function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS系统

可提供的1.0.0及更高版本