配置本地滤镜资源
Android 的滤镜资源配置文件是 TuSDK.bundle/others/lsq_tusdk_configs.json
,其示例和说明如下:
{ /* 滤镜组 */ "filterGroups": [ { /* 滤镜组文件 */ "file": "lsq_filter_Leica_1.gfilter", /* 滤镜组名字 */ "name": "lsq_filter_group_Leica", /* 滤镜组默认滤镜 */ "default_filter_id": 12, /* 滤镜名称背景色 */ "color": "#E74C3C", /* 滤镜 */ "filters": [ { /* 滤镜 id */ "id": 11, /* 滤镜代号 */ "name": "lsq_filter_Brilliant", /* 滤镜缩略图 */ "thumb": "lsq_filter_thumb_Brilliant", /* 滤镜名称背景色 */ "color": "#E74C3C", /* 滤镜参数 */ "args": { /* 混合 */ "mixied": 0.5 } }, { "id": 12, "name": "lsq_filter_Leica" }, { "id": 13, "name": "lsq_filter_Gloss" }, { "id": 14, "name": "lsq_filter_Harmony" }, { "id": 15, "name": "lsq_filter_Noir" } ] }, { "file": "lsq_filter_Beauty_6.gfilter", "default_filter_id": 65, "filters": [ { "id": 61, "name": "lsq_filter_SkinNature" }, { "id": 62, "name": "lsq_filter_SkinPink" }, { "id": 63, "name": "lsq_filter_SkinJelly" }, { "id": 64, "name": "lsq_filter_SkinNoir" }, { "id": 65, "name": "lsq_filter_SkinRuddy" }, { "id": 66, "name": "lsq_filter_SkinPowder" }, { "id": 67, "name": "lsq_filter_SkinSugar" } ] } ] }
更改滤镜显示名称
可以更改滤镜在滤镜栏上的显示名称,找到 TuSDK/res/values/strings.xml
文件,修改对应的名称即可。
建议用户 将此文件复制到自己的项目下进行修改,以免将来升级SDK时被覆盖。
更改滤镜列表项顺序
调整 TuSDK.bundle/others/lsq_tusdk_configs.json
文件中元素的顺序即可。
更换滤镜效果图
更换滤镜效果图分为更换第一级的滤镜效果图和更换第二级的滤镜效果图,第一级滤镜效果图相当于一组滤镜的封面效果图,第二级滤镜效果图指滤镜组中单个滤镜的效果图。
修改第一级的滤镜效果图
将所需要的效果图保存为 240 * 240
的 JPG
放入工程,并更改 TuSDK.bundle/others/lsq_tusdk_configs.json
文件中 default_filter_id
字段对应滤镜的 thumb
字段。
以修改人像滤镜组的封面、也即是第一级的效果图为例,人像滤镜的配置如下:
{ "file": "lsq_filter_Beauty_6.gfilter", "name": "lsq_filter_group_Beauty", "default_filter_id": 65, "filters": [ { "id": 61, "name": "lsq_filter_SkinNature", "args": { "smoothing": 0.3 } }, { "id": 62, "name": "lsq_filter_SkinPink", "args": { "smoothing": 0.5, "mixied": 0.3 } }, { "id": 63, "name": "lsq_filter_SkinJelly", "args": { "smoothing": 0.6, "mixied": 0.4 } }, { "id": 64, "name": "lsq_filter_SkinNoir", "args": { "smoothing": 0.5, "mixied": 1.0 } }, { "id": 65, "name": "lsq_filter_SkinRuddy", "args": { "smoothing": 0.45, "mixied": 0.25 } }, { "id": 66, "name": "lsq_filter_SkinSugar", "args": { "smoothing": 0.6, "mixied": 0.3 } }, { "id": 67, "name": "lsq_filter_SkinPowder", "args": { "smoothing": 0.45, "mixied": 0.4 } } ] }
default_filter_id
字段对应的滤镜 id
为 65
,因此需要更改 name
字段为 lsq_filter_SkinRuddy
的滤镜,将该滤镜的 thumb
字段指定为用户自己的图片即可:
{ "id": 65, "name": "lsq_filter_SkinRuddy", "args": { "smoothing": 0.45, "mixied": 0.25 }, "thumb": "your_pic_name" }
修改第二级的滤镜效果图
将所需要的效果图保存为 240 * 240
的 JPG
放入工程,并更改 TuSDK.bundle/others/lsq_tusdk_configs.json
文件中相关的 thumb
字段。
使用部分滤镜
使用配置文件的方式
删除 TuSDK.bundle/others/lsq_tusdk_configs.json
文件中的元素,同时删除 TuSDK.bundle/textures
目录下的相关文件。
使用代码动态改变
使用代码方式动态设置滤镜的显示比使用配置文件的方式更加灵活,用户需要给出要显示的滤镜的名称即可。
在相机中使用部分滤镜
TuCameraOption option = new TuCameraOption(); // 需要显示的滤镜名称列表 (如果为空将显示所有自定义滤镜, 可选) String[] filters = { "SkinNature", "SkinPink", "SkinJelly", "SkinNoir", "SkinRuddy", "SkinPowder", "SkinSugar"}; option.setFilterGroup(Arrays.asList(filters));
在多功能编辑组件中使用部分滤镜
// 需要显示的滤镜名称列表 (如果为空将显示所有自定义滤镜, 可选) String[] filters = { "SkinNature", "SkinPink", "SkinJelly", "SkinNoir", "SkinRuddy", "SkinPowder", "SkinSugar"}; component.componentOption().editFilterOption().setFilterGroup(Arrays.asList(filters));
获取滤镜名称
滤镜的名称可以在 TuSDK.bundle/others/lsq_tusdk_configs.json
文件中获得,在该文件中滤镜列表的层次结构如下所示:
filterGroups[] -> filters[] -> name:lsq_filter_%{Brilliant}
filterGroups[]
指用户所拥有的所有滤镜组;filters[]
指滤镜组中的其中一组;name:lsq_filter_%{Brilliant}
指的是一组中具体某个滤镜的代号,而滤镜的名称就从这个代号里面取得。
比如对于 lsq_filter_Brilliant
这个滤镜代号来说,滤镜名称就是 Brilliant
,因此用户只需把 Brilliant
这个字符串放到一个字符串数组中并传给设置滤镜的代码即可。