涂图

  • 首页
  • 解决方案
    • 拍照和图片编辑
    • 视频录制和后期编辑
    • 模板视频
    • 人像美颜
    • 人脸特效
    • 滤镜特效
    • 贴纸特效
  • API服务
    • 人像服务
    • 视频融合
    • 人脸云
    • 在线滤镜
  • 客户案例
  • 下载
  • 文档
  • 关于我们
  • 控制台
  • 一、新手上路
  • 控制台操作说明
    • 控制台使用说明
    • 自定义资源上传说明
  • 二、SDK 文档
  • 图像 SDK
    • 产品说明
      • 产品指南
      • 性能测试报告
    • iOS 文档
      • 快速开始
      • 安装与更新
      • 集成向导
      • 相机组件的使用
      • 相册组件的使用
      • 照片美化组件的使用
      • 主题包基础使用
      • 自定义滤镜
      • 自定义贴纸
      • 自定义界面
      • 自定义 ProgressHUD 提示框(2.0.0~3.2.7)
      • 自定义 ProgressHUD 提示框
      • API 文档
      • 致谢
    • Android 文档
      • 快速开始
      • 安装与更新
      • 集成向导
      • 相机组件的使用
      • 照片美化组件的使用
      • 头像设置组件的使用
      • 多选相册组件的使用
      • 主题包基础使用
      • 自定义贴纸
      • 自定义滤镜
      • 自定义界面
      • 自定义进度信息提示框
      • 自定义 Activity 打开相机
      • API 文档
      • 致谢
    • iOS 技术问题
      • 「Incorrenct app key」
      • 更换滤镜效果图
      • 导航栏与状态栏
      • 组件中使用部分滤镜
      • Cocoapods 相关问题
      • 图片尺寸变化
      • Photos.framework 相关错误
      • 多包名发布
      • GPUImage 的相关错误
      • TuSDKTSALAsset 转换系统对象
      • 滤镜无法显示名称
      • 获取相机的点击事件
    • Android 技术问题
      • Incorrenct app key
      • 重复引用包
      • Recyclerview 库缺失
      • 方法数超出 65536 限制
      • 传入图片路径
      • 指定裁剪比例
      • 指定相册每行列数
      • 禁用相册自动跳转
      • 如何使用部分滤镜?
      • 代码混淆
      • TuSDK 使用的依赖库
      • 多渠道打包
      • 设置相机输出尺寸
      • 相机横屏设置
      • 自定义照片美化组件各功能模块效果默认参数值
    • 拼图设计
      • 拼图模板导出
    • 版本更新日志
      • iOS 版本更新日志
      • Android 更新日志
  • 视频剪辑 SDK
    • 产品说明
      • 产品指南
    • iOS文档
      • TuSDK Video Editor iOS 接入文档
    • Android文档
      • TuSDK Video Editor Android 接入文档
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
  • 流处理(特效相机) SDK
    • 产品说明
      • 产品指南
    • iOS 文档
      • TuSDK特效相机接入文档-iOS
      • TuSDK直播特效接入说明-iOS
    • Android 文档
      • TuSDK特效相机接入文档-Android
      • TuSDK直播特效接入说明-Android
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
  • 视频融合 SDK
    • 产品说明
      • 产品指南
      • 模板管理
    • iOS 文档
      • 快速开始
      • 安装与更新
      • TuSDK EVA 接入说明 2.0
      • API文档
    • Android 文档
      • 快速开始
      • 安装与更新
      • TuSDK EVA 接入说明 (2.0.0+)
      • API 文档
    • 模板设计
      • (新)标准模板设计规范
      • (旧)标准模板设计规范
      • 支持的 AE 功能和属性
      • 动态模板设计规范
    • 模板导出
      • (新)模板导出插件安装
      • (新)模板导出插件使用
      • (旧)模板导出插件安装
      • (旧)模板导出插件使用
      • (旧)模板效果查看器
      • (旧)模板打包规范
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
      • 导出插件版本更新日志
      • 效果查看器更新日志
  • 短视频 SDK
    • 产品说明
      • 产品指南
      • 性能测试报告
    • iOS 文档
      • 快速开始
      • 集成向导
      • 录制相机的使用
      • 视频编辑器的使用
      • 功能 API 的使用
      • API 文档
    • Android 文档
      • 快速开始
      • 集成向导
      • 录制相机的使用
      • 视频编辑器的使用
      • 功能 API 的使用
      • API 文档
    • iOS 技术问题
      • 常见问题
    • Android 技术问题
      • 常见问题
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
  • 三、云服务文档
  • 人像服务
    • 使用文档
      • 快速入门
      • 核心功能
    • API概述
      • API 概述
      • API 文档
    • 常见问题
      • 常见问题
  • 视频融合(云渲染)
    • 使用文档
      • 快速入门
      • 模板管理
    • API概述
      • API概述
      • API 文档
    • 模板设计
      • (新)标准模板设计规范
      • (旧)标准模板设计规范
      • 支持的 AE 功能和属性
      • 动态模板设计规范
    • 模板导出
      • (新)模板导出插件安装
      • (新)模板导出插件使用
      • (旧)模板导出插件安装
      • (旧)模板导出插件使用
      • (旧)模板效果查看器
      • (旧)模板打包规范
    • 常见问题
    • 版本更新日志
      • 导出插件版本更新日志
      • 效果查看器更新日志
  • 人脸云
    • 使用文档
      • 快速入门
      • 核心功能
    • API 概述
      • API 概述
    • 常见问题
      • 常见问题
  • 在线滤镜
    • 使用文档
      • 快速入门
      • 核心功能
      • FILTER API
      • API 错误码表
    • API概述
      • API 概述
    • 常见问题
      • 常见问题
  • 四、综合
  • 涂图隐私协议
  • 用户退出机制
  • 动态贴纸设计规范
  • 美妆贴纸设计规范
  • 云服务账单说明
  • 应用包名与密钥
  • 基础服务开发者升级流程
  • 五、常见问题
  • 常见问题
  • 遇到问题,怎么办?
  • 如何使用贴纸管理、滤镜管理?

相机组件的使用

启动相机

启动前的准备

使用相机前先确认在 AndroidMenifest.xml 文件中加入了如下权限声明:

 <!-- 请求访问使用照相设备 -->
 <uses-permission android:name="android.permission.CAMERA" />
 <!-- 开启闪光灯权限 -->
 <uses-permission android:name="android.permission.FLASHLIGHT" />

 <uses-feature android:name="android.hardware.camera" />
 <uses-feature android:name="android.hardware.camera.autofocus" />
 <uses-feature android:name="android.hardware.camera.flash" />

同时也要检测设备是否支持相机,使用以下代码检测:

 // 如果不支持摄像头显示警告信息
 if (CameraHelper.showAlertIfNotSupportCamera(activity)) return;

其中 activity 参数是程序所在的上下文 Context 对象。

获取相机控制器对象

首先获取 TuCameraOption 的对象,如下:

 TuCameraOption option = new TuCameraOption();

然后对 option 进行属性配置,比如保存到相册、启用滤镜功能等。

然后使用配置好了的 option 获取相机控制器 TuCameraFragment 的对象,并对其设置委托代理,如下:

 TuCameraFragment fragment = option.fragment();
 fragment.setDelegate(this);

fragment.setDelegate(this) 是对相机设置委托,该代码所在的类需要实现接口 TuCameraFragmentDelegate,并实现该接口下的三个抽象方法,分别是:

// 获取一个拍摄结果
void onTuCameraFragmentCaptured(TuCameraFragment fragment, TuSdkResult result);

// 获取一个拍摄结果 (异步方法)
boolean onTuCameraFragmentCapturedAsync(TuCameraFragment fragment, TuSdkResult result);

// 请求从相机界面跳转到相册界面
void onTuAlbumDemand(TuCameraFragment fragment);

当拍照结束时,程序会自动调用 onTuCameraFragmentCaptured() 方法,可以在此方法中取得拍照结果。

当设置 option.setDisplayAlbumPoster(true); 时,相机左下角会显示相册入口,当点击该入口的时候程序会自动调用 onTuAlbumDemand() 方法,需要自己在该方法中实现跳转到相册的处理逻辑。

启动相机

当取得相机控制器对象之后,可以使用以下方式启动相机并全屏显示:

TuSdkHelperComponent componentHelper = new TuSdkHelperComponent(activity);

componentHelper.presentModalNavigationActivity(fragment, true);

常见属性设置

通过对 TuCameraOption 类属性的指定可以方便的对相机各个属性进行配置。

指定控制器类型

 option.setComponentClazz(TuCameraFragment.class);

当需要继承 TuCameraFragment 类以重写相机的某些属性或功能的时候,需要将子类作为该方法的参数,这样打开相机时就会调用子类中重写的方法。

指定根视图布局资源ID

 option.setRootViewLayoutId(TuCameraFragment.getLayoutId());

当需要给相机界面指定一个新的界面的时候使用该方法,将新的界面的布局资源 ID 放到该方法参数中。

设置保存到临时文件

保存到临时文件 (默认不保存, 当设置为 true 时, TuSdkResult.imageFile, 处理完成后将自动清理原始图片)

 option.setSaveToTemp(true);

设置保存到系统相册

保存到系统相册 (默认不保存, 当设置为 true 时, TuSdkResult.sqlInfo, 处理完成后将自动清理原始图片)

 option.setSaveToAlbum(true);

设置保存到的相册名称

 option.setSaveToAlbumName("TuSdk");

显示相册入口 (默认不显示)

 option.setDisplayAlbumPoster(false);

在多功能相册组件中,进入相机时,才会打开该选项。点击相册入口,可以在相册和相机之间跳转。 如果用户在单独使用相机时打开了该选项,需要自己处理点击相册的事件。

设置拍摄后自动释放相机

拍摄后自动释放相机,节省手机内存, 需要手动再次启动

 option.setAutoReleaseAfterCaptured(false);

设置照片输出压缩率

默认为90,设置范围是 0-100,如果设置为0,将保存为 PNG 格式

 option.setOutputCompress(90);

设置视频视图显示比例

默认为0,全屏显示

 option.setCameraViewRatio(1f);

设置相机方向

默认为 CameraConfigs.CameraFacing.Front

 option.setAvPostion(CameraConfigs.CameraFacing.Front);

设置照片输出图片长宽

默认为全屏

 option.setOutputSize(new TuSdkSize(1440, 1920));

设置闪光灯模式

 option.setDefaultFlashMode(Camera.Parameters.FLASH_MODE_OFF);

设置是否开启滤镜支持

默认为关闭

 option.setEnableFilters(true);

是否默认显示滤镜视图

默认不显示, 如果已经设置了 setEnableFilters(false), 那么 setShowFilterDefault() 将失效

 option.setShowFilterDefault(true);

设置滤镜组行视图宽度 (单位:DP)

 option.setGroupFilterCellWidthDP(60);

设置滤镜组选择栏高度 (单位:DP)

 option.setFilterBarHeightDP(80);

设置滤镜分组列表行视图布局资源 ID

默认资源 ID 为 tusdk_impl_component_widget_group_filter_group_view,如需自定义请继承自 GroupFilterGroupView

 option.setGroupTableCellLayoutId(GroupFilterGroupView.getLayoutId());

设置滤镜列表行视图布局资源 ID

默认资源 ID 为 tusdk_impl_component_widget_group_filter_item_view,如需自定义请继承自 GroupFilterItemView

 option.setFilterTableCellLayoutId(GroupFilterItemView.getLayoutId());

设置需要显示的滤镜名称列表

滤镜名称参考 TuSDK.bundle/others/lsq_tusdk_configs.json
filterGroups[]->filters[]->name lsqfilter%{Brilliant}

如果名称列表为空将显示所有滤镜

 String[] filters = { "SkinNature", "SkinPink", "SkinJelly",
 "SkinNoir",
 "SkinRuddy", "SkinPowder", "SkinSugar" };

 option.setFilterGroup(Arrays.asList(filters));

设置是否保存最后一次使用的滤镜

 option.setSaveLastFilter(true);

设置滤镜组自动选择默认滤镜

 option.setAutoSelectGroupDefaultFilter(true);

开启用户滤镜历史记录

 option.setEnableFiltersHistory(true);

开启在线滤镜

 option.setEnableOnlineFilter(true);

设置是否显示滤镜标题视图

 option.setDisplayFiltersSubtitles(true);

设置触摸聚焦视图 ID

默认视图 ID 为 tusdk_impl_component_camera_focus_touch_view.xml

 option.setFocusTouchViewId(TuFocusTouchView.getLayoutId());

设置是否直接输出图片数据

默认为 false,输出已经处理好的图片 Bitmap

 option.setOutputImageData(false);

设置是否禁用持续自动对焦

 option.setDisableContinueFoucs(true);

禁用系统拍照声音

 option.setDisableCaptureSound(true);

自定义拍照声音RAW ID

 option.setCaptureSoundRawId(R.raw.lsq_camera_focus_beep);

开启长按拍摄

 option.setEnableLongTouchCapture(true);

禁用聚焦声音

 option.setDisableFocusBeep(true);

是否需要统一配置参数

默认 false, 取消三星默认降噪,锐化

 option.setUnifiedParameters(false);

设置预览视图实时缩放比例

默认为 0.7f, 实时预览时,缩小到全屏大小比例,提升预览效率, 0 < mPreviewEffectScale <= 1

 option.setPreviewEffectScale(0.7f);

视频覆盖区域颜色

默认为0xFF000000

 option.setRegionViewColor(0xFF000000);

禁用前置摄像头自动水平镜像

默认为 false,前置摄像头拍摄结果自动进行水平镜像

 option.setDisableMirrorFrontFacing(true);

获取拍摄图片

TuSDK 提供了三种不同的方式获得拍摄图片:

  • 获取图片的 Bitmap 对象,此方式将不保存图片

  • 获取图片的存储路径,此方式会将图片保存在相册中

  • 将图片保存在临时文件中,并获取临时文件

获取图片的 Bitmap 对象

需要设置 TuCameraOption 类的下面几个属性:

TuCameraOption option = new TuCameraOption();
// 是否保存到相册
option.setSaveToAlbum(false);
// 是否保存到临时文件
option.setSaveToTemp(false);

该方式将不会保存拍照结果,如需保存须在获得图片之后自行处理。

随后可以在 onTuCameraFragmentCaptured(TuCameraFragment fragment, TuSdkResult result) 方法中使用 result.image 获取图片的 Bitmap 对象。

获取图片的存储路径

需要设置 TuCameraOption 类的下面几个属性:

TuCameraOption option = new TuCameraOption();
// 是否保存到相册
option.setSaveToAlbum(true);
// 是否保存到临时文件
option.setSaveToTemp(false);

该方式会将拍摄结果保存在相册中,同时也可以通过设置

option.setSaveToAlbumName("Camera")

将图片保存到名称为 Camera 的相册中。

随后可以在 onTuCameraFragmentCaptured(TuCameraFragment fragment, TuSdkResult result) 方法中使用 result.imageSqlInfo.path 获取照片的路径。

同时,此方法还可以获取到拍摄结果的其他属性,比如拍摄时间、文件长宽等,具体可以参看 ImageSqlInfo 类的API。

获取图片所在的临时文件

需要设置 TuCameraOption 类的下面几个属性:

TuCameraOption option = new TuCameraOption();
// 是否保存到相册
option.setSaveToAlbum(false);
// 是否保存到临时文件
option.setSaveToTemp(true);

该方式将会把拍摄结果保存在临时文件中,在处理完成之后将会清理原始图片。

随后可以在 onTuCameraFragmentCaptured(TuCameraFragment fragment, TuSdkResult result) 方法中使用 result.imageFile 获取临时文件。

  • 启动相机
  • 常见属性设置
  • 获取拍摄图片
  • 在线技术支持
  • 专业售前售后团队
  • 版本定期更新
  • 全方位解决方案

商务合作

  • 177-6716-7529
  • 2969573855
  • sales@tusdk.com
  • 浙江省 杭州市 西湖区 西斗门9号 福地创业园1号楼3楼301室

关注我们

qrcode

©2019-2025 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 浙公网安备33010602001649号

  • 177-6716-7529
  • sales@tusdk.com
  • 2969573855