涂图

  • 首页
  • 解决方案
    • 拍照和图片编辑
    • 视频录制和后期编辑
    • 模板视频
    • 人像美颜
    • 人脸特效
    • 滤镜特效
    • 贴纸特效
  • 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 概述
    • 常见问题
      • 常见问题
  • 四、综合
  • 涂图隐私协议
  • 用户退出机制
  • 动态贴纸设计规范
  • 美妆贴纸设计规范
  • 云服务账单说明
  • 应用包名与密钥
  • 基础服务开发者升级流程
  • 五、常见问题
  • 常见问题
  • 遇到问题,怎么办?
  • 如何使用贴纸管理、滤镜管理?

相机组件的使用

  • 如果用户使用 TUTUCLOUD 官方 Demo 登陆画面中的特效相机的启动方式调用相机,需要用户参考 Demo 中的 SampleBase 文件对自己的项目进行相关环境配置,详见 TuSDK-for-iOS-demo 。
  • 请用户直接使用文档中的示例代码进行相机的调用。

启动相机

  • 用户集成 TuSDK,然后在使用 TuSDK 的地方导入 #import <TuSDKGeeV1/TuSDKGeeV1.h> 。
  • 然后在需要调用相机的方法内调用开启访问相机权限的方法。
  • 如果使用点击事件方式开启相机权限验证方法,方法中的控制器参数请写 self。·
  • 请按照官方 Demo 中给出的方法进行使用,不要更改组件的代码顺序。
    [TuSDKTSDeviceSettings checkAllowWithController:self.controller 
                                               type:lsqDeviceSettingsCamera
                                          completed:^(lsqDeviceSettingsType type, BOOL openSetting)
     {
         if (openSetting) {
             lsqLError(@"Can not open camera");
             return;
         }
         [self showCameraController];
     }];
  • 根据 Demo 提供的范例调用[self showCameraController]方法,启动相机。
- (void)showCameraController;
{
    // 使用默认主题包的组件需要在组件启动前提前选择主题包的`style`,避免默认主题包组件 UI 显示异常。
    // [TuSDK shared].style = lsqSdkUIDefault;

    TuSDKPFCameraOptions *opt = [TuSDKPFCameraOptions build];
    /* 请在控制器初始化之前进行 option 的相关参数的配置,配置相机的功能,请以 TuSDK 官方 demo 为准 */
    TuSDKPFCameraViewController *controller = opt.viewController;
    controller.delegate = self;
    [self presentModalNavigationController:controller animated:YES];

}
  • 相机拍照结束之后,执行代理方法
#pragma mark - TuSDKPFCameraDelegate
/**
 *  获取一个拍摄结果
 *
 *  @param controller 默认相机视图控制器
 *  @param result     拍摄结果
 */
- (void)onTuSDKPFCamera:(TuSDKPFCameraViewController *)controller captureResult:(TuSDKResult *)result;
{
    // 如需在相机控制器开启编辑组件,须将该行代码注释
    [controller dismissModalViewControllerAnimated:YES];

    // 拍照完成时,可在此立即开启图片编辑组件,对当前拍摄照片进行编辑。

    // 开启裁切+滤镜组件,需要遵守 TuSDKPFEditTurnAndCutDelegate
    [self openEditAndCutWithController:controller result:result];

    // 开启裁切+滤镜+贴纸编辑组件,需要将组件声明成全局变量
    [self openEditAdvancedWithController:controller result:result];

    // 开启照片美化组件,需要将组件声明成全局变量
    [self openEditMultipleWithController:controller result:result];

    //详细开启编辑组件的方法请参考 demo 中各组件开启方法内的详细代码
}

#pragma mark - TuSDKCPComponentErrorDelegate
/**
 *  获取组件返回错误信息
 *
 *  @param controller 控制器
 *  @param result     返回结果
 *  @param error      异常信息
 */
- (void)onComponent:(TuSDKCPViewController *)controller result:(TuSDKResult *)result error:(NSError *)error;
{
     lsqLDebug(@"onComponent: controller - %@, result - %@, error - %@", controller, result, error);
}
  • 注意:
    1.遵守代理 TuSDKPFCameraDelegate 。
    2.设置了代理 controller.delegate = self;,代码中要实现两个代理方法。

设置相机的默认参数

option 选项进行初始化

  • 相机组件都是通过 TuSDKPFCameraOptions 进行设置,全部参数请阅读相机组件选项配置。
- (void)showCameraController;
{
    TuSDKPFCameraOptions *opt = [TuSDKPFCameraOptions build];
    /* 这里是 option 配置功能选项,配置相机的功能 */
    opt.XXXXX = XXXXX;
}

指定界面视图类型

  • 默认相机视图类,需要继承 TuSDKPFCameraView ,修改并覆盖原有方法,指定新的视图。
   opt.viewClazz = [TuSDKPFCameraView class];
  • 默认相机控制栏视图类,需要继承 TuSDKPFCameraConfigView
   opt.configBarViewClazz = [TuSDKPFCameraConfigView class];
  • 默认相机底部栏视图类, 需要继承 TuSDKPFCameraBottomView
   opt.bottomBarViewClazz = [TuSDKPFCameraBottomView class];
  • 滤镜视图类 (默认:TuSDKPFCameraFilterGroupView, 需要继承 TuSDKPFCameraFilterGroupView
   opt.filterViewClazz = [TuSDKPFCameraFilterGroupView class];
  • 聚焦触摸视图类, 需要继承 TuSDKCPFocusTouchView
   opt.focusTouchViewClazz = [TuSDKCPFocusTouchView class];
  • 滤镜分组列表行视图类, 需要继承 TuSDKCPGroupFilterGroupCell
   opt.filterBarGroupCellClazz = [TuSDKCPGroupFilterGroupCell class];
  • 滤镜列表行视图类, 需要继承 TuSDKCPGroupFilterItemCell
   opt.filterBarTableCellClazz = [TuSDKCPGroupFilterItemCell class];
  • 滤镜列表行视图宽度
   opt.filterBarCellWidth = 60;
  • 滤镜列表选择栏高度
   opt.filterBarHeight = 80;

相机拍照选项

  • 设置后置摄像头优先启动,默认是后置摄像头启动
    opt.cameraPostion = [AVCaptureDevice firstBackCameraPosition];
  • 设置前置摄像头优先启动
    opt.cameraPostion = [AVCaptureDevice firstFrontCameraPosition];
  • 设置前置摄像头拍照水平镜像,设置为 NO ,拍摄的照片会出现左右镜像变化
    opt.disableMirrorFrontFacing = YES;
  • 拍照分辨率,默认设置最高,修改设置可查阅AVCaptureSession文档选择合适的模式
    opt.sessionPreset = AVCaptureSessionPresetHigh;
  • 照片输出压缩率,设置范围压缩率 0-1 如果设置为0 将保存为PNG格式,默认设置是 0.95。
    opt.outputCompress = 0.95f;
  • 视频覆盖区域颜色,默认设置是 [UIColor clearColor] ,更改设置需要将颜色的代码部分转化为十六进制转的颜色对象,十六进制字符串,例如 @"#FF5534"
    opt.regionViewColor = [UIColor lsqClorWithHex:@"#403e43"];
  • 照片的输出图片大小,可以控制输出照片的尺寸,设置 ratioType 功能配置项将会失效。
    opt.outputSize = CGSizeMake(1440, 1920);
  • 闪光灯关闭模式,默认是设置关闭
   opt.cameraDefaultFlashMode = AVCaptureFlashModeOff;
  • 闪光灯开启模式,设置为开启模式,启动相机摄像头,闪光灯开启
   opt.cameraDefaultFlashMode = AVCaptureFlashModeOn;
  • 闪光灯自动模式,闪光灯会根据光线强度,自动开启或关闭
   opt.cameraDefaultFlashMode = AVCaptureFlashModeAuto;
  • 相机视图显示比例设置,可以直接设置比例,默认是 0 显示全屏,设置范围 0-1 , 0 <= mRegionRatio
    opt.cameraViewRatio = 0.75f
  • 相机视图显示比例类型设置,默认设置是 lsqRatioDefault, 如果设置cameraViewRatio > 0, 将忽略ratioType
    // 默认比例
    lsqRatioDefault = lsqRatioOrgin | lsqRatio_1_1 | lsqRatio_2_3 | lsqRatio_3_4 | lsqRatio_9_16;
    // 全部比例
    lsqRatioAll = lsqRatioOrgin | lsqRatio_1_1 | lsqRatio_2_3 | lsqRatio_3_4 | lsqRatio_9_16 | lsqRatio_3_2 | lsqRatio_4_3 | lsqRatio_16_9;
    // 默认设置
    opt.ratioType = lsqRatioDefault;
    // 自定义设置 (不支持排序)
    opt.ratioType = lsqRatio_9_16 | lsqRatio_3_2 | lsqRatio_4_3 | lsqRatio_16_9;
  • 相机网格辅助线,默认设置是 false 表示关闭辅助线,可设置启动相机时开启辅助线
    opt.displayGuideLine = false;
  • 长按设置,默认是 NO 表示关闭,设置开启后长按可以拍摄
    opt.enableLongTouchCapture = YES;
  • 长按延时设置,默认设置为 1.2秒,可以手动更改
    opt.longTouchDelay = 1.2;
  • 持续自动对焦,默认设置是 NO 表示关闭,开启后每间隔固定时间会自动进行对焦
    opt.disableContinueFoucs = YES;
  • 自动聚焦延时,默认设置 5秒,可以更改时间,每间隔 5 秒进行相机进行对焦
    opt.autoFoucsDelay = 5;

相机组件滤镜模块的设置

  • 开启滤镜支持,默认是 NO 表示关闭状态, 要手动设置开启,相机组件才会显示滤镜模块
   opt.enableFilters = YES;
  • 显示滤镜视图,如果 enableFilters = NO, showFilterDefault 将失效,使用滤镜是需要将 enableFilters 和 showFilterDefault 都设置成 YES
   opt.showFilterDefault = YES;
  • 开启滤镜历史记录
   opt.enableFilterHistory = YES;
  • 开启在线滤镜
   opt.enableOnlineFilter = YES;
  • 显示滤镜标题视图
   opt.displayFilterSubtitles = YES;
  • 滤镜去除分组显示,自定义显示需求滤镜。
  • 注意 : 使用在线滤镜下载到本地的滤镜是分组显示的滤镜,如果设置了 filterGroup ,那么在线滤镜下载的滤镜将会无法显示。
  • 滤镜名称列表,滤镜名称参考 TuSDK.bundle/others/lsq_tusdk_configs.json,滤镜分组 filterGroups[]->filters[]->name lsqfilter%{Brilliant}
    opt.filterGroup = @[@"SkinNature", @"SkinPink", @"SkinJelly", @"SkinNoir", @"SkinRuddy", @"SkinPowder", @"SkinSugar"];

相册按钮的点击事件

  • 显示相册入口,默认是不显示的,设置为显示时,需要自己处理点击事件
    opt.displayAlbumPoster = YES;
  • 实现相册入口按钮点击的代理方法
/**
 *  请求从相机界面跳转至相册
 *
 *  @param controller 默认相机视图控制器
 */
- (void)onTuSDKAlbumDemand:(TuSDKPFCameraViewController *)controller;
{
     // 处理相册按钮的点击事件
}

获取相机的拍照结果

使用 TuSDK 提供的相机执行拍摄动作之后,用户可以通过以下三种不同的方式获得拍摄图片:

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

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

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

处理拍照结果的配置项

  • 保存到系统相册,默认是不保存, 当设置为 YES 时, 可以得到照片对象 TuSDKResult.asset
    opt.saveToAlbum = YES;
  • 保存到临时文件,默认是不保存, 当设置为 YES 时, 可获取图片保存的临时文件路径 TuSDKResult.tmpFile
    opt.saveToTemp = NO;
  • 保存到系统相册的相册名称,可根据需求改变相册名称
    opt.saveToAlbumName = @"TuSdk";

获取图片的 image 对象

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

    TuSDKPFCameraOptions *opt = [TuSDKPFCameraOptions build];

    // 保存到系统相册 (默认不保存, 当设置为YES时, TuSDKResult.asset)
    opt.saveToAlbum = NO;

    // 保存到临时文件 (默认不保存, 当设置为YES时, TuSDKResult.tmpFile)
    opt.saveToTemp = NO;

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

随后您可以在

- (void)onTuSDKPFCamera:(TuSDKPFCameraViewController *)controller captureResult:(TuSDKResult *)result;

获取图片的 image 对象即 result.image。

获取图片的存储路径

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

    TuSDKPFCameraOptions *opt = [TuSDKPFCameraOptions build];

    // 保存到系统相册 (默认不保存, 当设置为YES时, TuSDKResult.asset)
    opt.saveToAlbum = YES;

    // 保存到临时文件 (默认不保存, 当设置为YES时, TuSDKResult.tmpFile)
    opt.saveToTemp = NO;

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

    // 保存到系统相册的相册名称
    opt.saveToAlbumName = @"TuSdk";

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

随后可以在

- (void)onTuSDKPFCamera:(TuSDKPFCameraViewController *)controller captureResult:(TuSDKResult *)result;

获取照片的路径。

获取图片所在的临时文件 result.imagePath

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

    TuSDKPFCameraOptions *opt = [TuSDKPFCameraOptions build];

    // 保存到系统相册 (默认不保存, 当设置为YES时, TuSDKResult.asset)
    opt.saveToAlbum = NO;

    // 保存到临时文件 (默认不保存, 当设置为YES时, TuSDKResult.tmpFile)
    opt.saveToTemp = YES;

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

随后可以在

- (void)onTuSDKPFCamera:(TuSDKPFCameraViewController *)controller captureResult:(TuSDKResult *)result;

获取临时文件。

  • 启动相机
  • 设置相机的默认参数
  • 获取相机的拍照结果
  • 在线技术支持
  • 专业售前售后团队
  • 版本定期更新
  • 全方位解决方案

商务合作

  • 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