SampleBase
文件对自己的项目进行相关环境配置,详见 TuSDK-for-iOS-demo 。#import <TuSDKGeeV1/TuSDKGeeV1.h>
。开启访问相机权限
的方法。self
。·不要更改组件的代码顺序
。 [TuSDKTSDeviceSettings checkAllowWithController:self.controller
type:lsqDeviceSettingsCamera
completed:^(lsqDeviceSettingsType type, BOOL openSetting)
{
if (openSetting) {
lsqLError(@"Can not open camera");
return;
}
[self showCameraController];
}];
[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);
}
注意
:
TuSDKPFCameraDelegate
。
controller.delegate = self;
,代码中要实现两个代理方法。TuSDKPFCameraOptions
进行设置,全部参数请阅读相机组件选项配置。- (void)showCameraController;
{
TuSDKPFCameraOptions *opt = [TuSDKPFCameraOptions build];
/* 这里是 option 配置功能选项,配置相机的功能 */
opt.XXXXX = XXXXX;
}
opt.viewClazz = [TuSDKPFCameraView class];
opt.configBarViewClazz = [TuSDKPFCameraConfigView class];
opt.bottomBarViewClazz = [TuSDKPFCameraBottomView class];
opt.filterViewClazz = [TuSDKPFCameraFilterGroupView class];
opt.focusTouchViewClazz = [TuSDKCPFocusTouchView class];
opt.filterBarGroupCellClazz = [TuSDKCPGroupFilterGroupCell class];
opt.filterBarTableCellClazz = [TuSDKCPGroupFilterItemCell class];
opt.filterBarCellWidth = 60;
opt.filterBarHeight = 80;
opt.cameraPostion = [AVCaptureDevice firstBackCameraPosition];
opt.cameraPostion = [AVCaptureDevice firstFrontCameraPosition];
opt.disableMirrorFrontFacing = YES;
opt.sessionPreset = AVCaptureSessionPresetHigh;
opt.outputCompress = 0.95f;
opt.regionViewColor = [UIColor lsqClorWithHex:@"#403e43"];
opt.outputSize = CGSizeMake(1440, 1920);
opt.cameraDefaultFlashMode = AVCaptureFlashModeOff;
opt.cameraDefaultFlashMode = AVCaptureFlashModeOn;
opt.cameraDefaultFlashMode = AVCaptureFlashModeAuto;
opt.cameraViewRatio = 0.75f
// 默认比例
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;
opt.displayGuideLine = false;
opt.enableLongTouchCapture = YES;
opt.longTouchDelay = 1.2;
opt.disableContinueFoucs = YES;
opt.autoFoucsDelay = 5;
opt.enableFilters = YES;
opt.showFilterDefault = YES;
opt.enableFilterHistory = YES;
opt.enableOnlineFilter = YES;
opt.displayFilterSubtitles = YES;
注意
: 使用在线滤镜下载到本地的滤镜是分组显示的滤镜,如果设置了 filterGroup
,那么在线滤镜下载的滤镜将会无法显示。 opt.filterGroup = @[@"SkinNature", @"SkinPink", @"SkinJelly", @"SkinNoir", @"SkinRuddy", @"SkinPowder", @"SkinSugar"];
opt.displayAlbumPoster = YES;
/**
* 请求从相机界面跳转至相册
*
* @param controller 默认相机视图控制器
*/
- (void)onTuSDKAlbumDemand:(TuSDKPFCameraViewController *)controller;
{
// 处理相册按钮的点击事件
}
使用 TuSDK 提供的相机执行拍摄动作之后,用户可以通过以下三种不同的方式获得拍摄图片:
获取图片的 image 对象,此方式将不保存图片
获取图片的存储路径,此方式会将图片保存在相册中
将图片保存在临时文件中,并获取临时文件
opt.saveToAlbum = YES;
opt.saveToTemp = NO;
opt.saveToAlbumName = @"TuSdk";
需要设置 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;
获取临时文件。
©2019-2024 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 浙公网安备33010602001649号