tutu
来自于:AC模块工作室
init openCamera editPicture multiPictureEdit editAndCutPicture editAvatar editAdvanced openAlbum openMultiAlbum editPictureSpecifiedFunction
概述
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的时候勾选相机、相册、以及位置权限,否则会导致崩溃
5.android从1.0.3版本开始,要使用升级环境编译,固件要求Android 4.4 及其以上
配置 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的整数
- 默认值: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:
- 类型:布尔类型
- 描述:(可选项) 是否在组件执行完成后自动关闭组件;(ios不支持)
- 默认值: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及更高版本