相册组件的使用
- TuSDK 的相册组件包含相册组件和多选相册组件。文档多选相册为例,展示组件的使用方法和自定义组件界面。
- 如果用户使用 TUTUCLOUD 官方 Demo 登陆画面中的照片美化组件的启动方式调用,需要用户参考 Demo 中的
SampleBase
文件对自己的项目进行相关环境配置,详见 TuSDK-for-iOS-demo 。
- 请用户直接使用
AlbumMultipleComponentSample
或者 AlbumComponentSample
中的代码进行照片美化组件的调用。
- 请按照官方 Demo 中给出的方法进行使用,
不要更改组件的代码顺序
。
启动多选相册
- 在需要使用组件的地方导入头文件
#import <TuSDKGeeV1/TuSDKGeeV1.h>
。
- 创建组件对象,需要将组件声明成全局变量。
/**
* 多选相册组件
*/
@interface AlbumMultipleComponentSample ()
{
// 多选相册组件
TuSDKCPAlbumMultipleComponent *_albumComponent;
}
@end
- 在需要使用组件的地方调用组件的启动方法
- 如果是直接在点击事件中启动组件,组件启动方法中传入的控制器的参数要写
self
。
- 多选相册组件是将相机和相册的功能整合在一起,相机的
option
功能参数设置可以参考文档相机组件的使用。
- 单独启动组件,请事先确定默认主题包的 style,如不使用 GeeV2 主题包的相关功能,可不进行 style 的设置
// 使用默认主题包的组件需要在组件启动前提前选择主题包的`style`,避免默认主题包组件 UI 显示异常。
// [TuSDK shared].style = lsqSdkUIDefault;
_albumComponent =
[TuSDKGeeV1 albumMultipleCommponentWithController:controller
callbackBlock:^(TuSDKResult *result, NSError *error, UIViewController *controller)
{
// 相册选择获取到的是照片的对象,选择单张照片获取的是 result.imageAsset ,是 id<TuSDKTSAssetInterface> imageAsset 类型
// 选择多张照片获取的是 result.imageAssets ,是 NSArray<TuSDKTSAssetInterface> *imageAssets 类型
// result.imageAssets 这个数组内存放的是 id<TuSDKTSAssetInterface> imageAsset 类型的对象
// 用户可以将多选相册连接图片编辑器使用
// 开启裁切+滤镜组件,需要遵守 TuSDKPFEditTurnAndCutDelegate
// [self openEditAndCutWithController:controller result:result];
// 开启裁切+滤镜+贴纸编辑组件,需要将组件声明成全局变量
// [self openEditAdvancedWithController:controller result:result];
// 开启照片美化组件,需要将组件声明成全局变量
// [self openEditMultipleWithController:controller result:result];
// 详细开启编辑组件的方法请参考 demo 中各组件开启方法内的详细代码
// 用户只是单独的使用多选相册并对选择的图片对象进行处理
// 用户可以通过数组下标的方式获取到对应的照片对象
// 将 result.imageAsset 对象转换为图片的操作需要消耗一部分性能
// id<TuSDKTSAssetInterface> storeimageAsset = [result.imageAssets objectAtIndex:0];
// UIImage *storeImage = [storeimageAsset fullResolutionImage];
// 用户使用多选相册的相机进行拍照获取 result.image 需要对 option 对应的功能参数进行设置
}
maxSelectionNumber:9];
// @see-http://tusdk.com/docs/ios/image/api-geev1/Classes/TuSDKPFAlbumMultipleOptions.html
// _albumComponent.options.albumOptions
// _albumComponent.options.albumOptions.viewClazz = [TuSDKPFAlbumView class];
// @see-http://tusdk.com/docs/ios/image/api-geev1/Classes/TuSDKPFCameraOptions.html
// _albumComponent.options.cameraOptions
// _albumComponent.options.cameraOptions.viewClazz = [TuSDKPFCameraView class];
// 需要进行对 option 进行设置,相机拍照后可以获取到 result.image
// _albumComponent.options.cameraOptions.saveToAlbum = NO;
// _albumComponent.options.cameraOptions.saveToTemp = NO;
// 相册组件中每行的相片数目,默认是 0 ,系统会自动适配,也可以自己进行设置
// _albumComponent.options.albumOptions.photoColumnNumber = 5;
// 设置照片排序方式(多选相册特有,支持 iOS 8 及以上)
// _albumComponent.options.albumOptions.photosSortKeyType = lsqAssetSortKeyCreateDate;
// 设置选择照片的最大尺寸 默认:8000*8000
// _albumComponent.options.albumOptions.maxSelectionImageSize = CGSizeMake(8000, 8000);
// 是否在组件执行完成后自动关闭组件 (默认:NO)
_albumComponent.autoDismissWhenCompelted = YES;
[_albumComponent showComponent];
设置多选相册的默认参数
- 多选相册的 option 设置分为相机和相册两个部分。
- 相册的相关参数设置可以通过
_albumComponent.options.albumOptions
进行设置,全部参数请阅读多选相册的选项配置。
- 相机的相关参数设置可以通过
_albumComponent.options.cameraOptions
进行设置,全部参数请阅读相机组件选项配置。
相册指定界面视图类型
- 默认多选相册视图类,需要继承 TuSDKPFAlbumMultipleView ,修改并覆盖原有方法,指定新的视图。
_albumComponent.options.albumOptions.viewClazz = [TuSDKPFAlbumMultipleView class];
- 默认多选相册控制器类,需要继承 TuSDKPFAlbumMultipleViewController
_albumComponent.options.albumOptions.componentClazz = [TuSDKPFAlbumMultipleViewController class];
- 默认多选相册照片列表视图类,需要继承 TuSDKPFPhotosGridView
_albumComponent.options.albumOptions.photosViewClazz = [TuSDKPFPhotosGridView class];
- 默认多选相册照片列表单元格视图类,需要继承 TuSDKPFPhotosGridCell
_albumComponent.options.albumOptions.gridCellViewClazz = [TuSDKPFPhotosGridCell class];
- 默认多选相册相册列表视图类,需要继承 TuSDKPFAlbumPopList
_albumComponent.options.albumOptions.albumPopListClazz = [TuSDKPFAlbumPopList class];
- 默认多选相册相册列表行视图类,需要继承 TuSDKPFAlbumPopListCell
_albumComponent.options.albumOptions.albumPopListCellClazz = [TuSDKPFAlbumPopListCell class];
相机指定界面视图类
- 默认相机视图类,需要继承 TuSDKPFCameraView ,修改并覆盖原有方法,指定新的视图。
_albumComponent.options.cameraOptions.viewClazz = [TuSDKPFCameraView class];
- 默认相机控制栏视图类,需要继承 TuSDKPFCameraConfigView
_albumComponent.options.cameraOptions.configBarViewClazz = [TuSDKPFCameraConfigView class];
- 默认相机底部栏视图类, 需要继承 TuSDKPFCameraBottomView
_albumComponent.options.cameraOptions.bottomBarViewClazz = [TuSDKPFCameraBottomView class];
- 闪光灯视图类, 需要继承 TuSDKPFCameraFlashView
_albumComponent.options.cameraOptions.flashViewClazz = [TuSDKPFCameraFlashView class];
- 滤镜视图类 (默认:TuSDKPFCameraFilterGroupView, 需要继承 TuSDKPFCameraFilterGroupView
_albumComponent.options.cameraOptions.filterViewClazz = [TuSDKPFCameraFilterGroupView class];
- 聚焦触摸视图类, 需要继承 TuSDKCPFocusTouchView
_albumComponent.options.cameraOptions.focusTouchViewClazz = [TuSDKCPFocusTouchView class];
- 滤镜分组列表行视图类, 需要继承 TuSDKCPGroupFilterGroupCell
_albumComponent.options.cameraOptions.filterBarGroupCellClazz = [TuSDKCPGroupFilterGroupCell class];
- 滤镜列表行视图类, 需要继承 TuSDKCPGroupFilterItemCell
_albumComponent.options.cameraOptions.filterBarTableCellClazz = [TuSDKCPGroupFilterItemCell class];
_albumComponent.options.cameraOptions.filterBarCellWidth = 60;
_albumComponent.options.cameraOptions.filterBarHeight = 80;
相机功能选项设置
_albumComponent.options.cameraOptions.cameraPostion = [AVCaptureDevice firstBackCameraPosition];
_albumComponent.options.cameraOptions.cameraPostion = [AVCaptureDevice firstFrontCameraPosition];
- 设置前置摄像头拍照水平镜像,设置为 NO ,拍摄的照片会出现左右镜像变化
_albumComponent.options.cameraOptions.disableMirrorFrontFacing = YES;
- 拍照分辨率,默认设置最高,修改设置可查阅AVCaptureSession文档选择合适的模式
_albumComponent.options.cameraOptions.sessionPreset = AVCaptureSessionPresetHigh;
- 照片输出压缩率,设置范围压缩率 0-1 如果设置为0 将保存为PNG格式,默认设置是 0.95。
_albumComponent.options.cameraOptions.outputCompress = 0.95f;
- 视频覆盖区域颜色,默认设置是 [UIColor clearColor] ,更改设置需要将颜色的代码部分转化为十六进制转的颜色对象,十六进制字符串,例如 @"#FF5534"
_albumComponent.options.cameraOptions.regionViewColor = [UIColor lsqClorWithHex:@"#403e43"];
- 照片的输出图片大小,可以控制输出照片的尺寸,设置 ratioType 功能配置项将会失效。
_albumComponent.options.cameraOptions.outputSize = CGSizeMake(1440, 1920);
_albumComponent.options.cameraOptions.cameraDefaultFlashMode = AVCaptureFlashModeOff;
- 闪光灯开启模式,设置为开启模式,启动相机摄像头,闪光灯开启
_albumComponent.options.cameraOptions.cameraDefaultFlashMode = AVCaptureFlashModeOn;
- 闪光灯自动模式,闪光灯会根据光线强度,自动开启或关闭
_albumComponent.options.cameraOptions.cameraDefaultFlashMode = AVCaptureFlashModeAuto;
- 相机视图显示比例设置,可以直接设置比例,默认是 0 显示全屏,设置范围 0-1 , 0 <= mRegionRatio
_albumComponent.options.cameraOptions.cameraViewRatio = 0.75f
- 相机视图显示比例类型设置,默认设置是 lsqRatioAll, 如果设置cameraViewRatio > 0, 将忽略ratioType
_albumComponent.options.cameraOptions.ratioType = lsqRatioAll;
lsqRatioAll = lsqRatioOrgin | lsqRatio_1_1 | lsqRatio_2_3 | lsqRatio_3_4 | lsqRatio_9_16 ;
- 相机网格辅助线,默认设置是 false 表示关闭辅助线,可设置启动相机时开启辅助线
_albumComponent.options.cameraOptions.displayGuideLine = false;
- 长按设置,默认是 NO 表示关闭,设置开启后长按可以拍摄
_albumComponent.options.cameraOptions.enableLongTouchCapture = YES;
_albumComponent.options.cameraOptions.longTouchDelay = 1.2;
- 持续自动对焦,默认设置是 NO 表示关闭,开启后每间隔固定时间会自动进行对焦
_albumComponent.options.cameraOptions.disableContinueFoucs = YES;
- 自动聚焦延时,默认设置 5秒,可以更改时间,每间隔 5 秒进行相机进行对焦
_albumComponent.options.cameraOptions.autoFoucsDelay = 5;
相机组件滤镜模块的设置
- 开启滤镜支持,默认是 NO 表示关闭状态, 要手动设置开启,相机组件才会显示滤镜模块
_albumComponent.options.cameraOptions.enableFilters = YES;
- 显示滤镜视图,如果 enableFilters = NO, showFilterDefault 将失效,使用滤镜是需要将 enableFilters 和 showFilterDefault 都设置成 YES
_albumComponent.options.cameraOptions.showFilterDefault = YES;
_albumComponent.options.cameraOptions.enableFilterHistory = YES;
_albumComponent.options.cameraOptions.enableOnlineFilter = YES;
_albumComponent.options.cameraOptions.displayFilterSubtitles = YES;
- 滤镜去除分组显示,自定义显示需求滤镜。
注意
: 使用在线滤镜下载到本地的滤镜是分组显示的滤镜,如果设置了 filterGroup
,那么在线滤镜下载的滤镜将会无法显示。
- 滤镜名称列表,滤镜名称参考 TuSDK.bundle/others/lsq_tusdk_configs.json,滤镜分组 filterGroups[]->filters[]->name lsqfilter%{Brilliant}
_albumComponent.options.cameraOptions.filterGroup = @[@"SkinNature", @"SkinPink", @"SkinNoir", @"SkinRuddy", @"SkinSugar"];