1.在开启我们的编辑组件时,有三种不同的设置图片方式,分别是 result.image
,result.imagePath
,result.imageAsset
。当从外部直接传入一个原生 ALAsset
或者 PHAsset
对象时如何将其转换成可供组件直接使用的 TuSDKTSALAsset
和 TuSDKTSPHAsset
对象。
2.用户获取到了最后的图片编辑结果 result.imageAsset
,但是编辑结果的类型是 SDK 封装过的数据类型,现在用户需要获取到系统类型的 assets 类型。
1.1 TUSDK 中 TuSDKTSALAsset
对象是对 ALAsset
对象的一个包装,在 SDK 中提供了相应的包装方法可直接进行转换
1.2 TUSDK 中 TuSDKTSPHAsset
对象是对 PHAsset
对象的一个包装,在 SDK 中提供了相应的包装方法可直接进行转换
// 调用类型转换的方法需要引入头文件
#import <TuSDK/TuSDKTSPHAssets+Extend.h>
#import <TUSDK/TuSDKTSALAssets+Extend.h>
/**
* 初始化媒体资源对象
*
* @param asset ALAsset / PHAsset
*
* @return 媒体资源对象
*/
// 转化 ALAsset
+ (instancetype)initWithALAsset:(ALAsset *)asset;
// 转化 PHAsset
+ (instancetype)initWithPHAsset:(PHAsset *)asset;
具体转换代码如下所示:
outPutAsset
为外部传入需要处理的照片对象,通过方法进行转换
TuSDKTSALAsset *imageAsset = [TuSDKTSALAsset initWithALAsset:outPutAsset];
TuSDKTSPHAsset *imageAsset = [TuSDKTSPHAsset initWithPHAsset:outPutAsset];
将转换之后的对象传给编辑组件即可
_photoEditMultipleComponent.inputAsset = imageAsset;
2.TuSDK 中的 TuSDKTSALAsset
和 TuSDKTSPHAsset
分别对应着 iOS 中的系统类型 ALAsset
和 PHAsset
,用户可以通过方法将 TuSDK 的类型转换为系统类型。
// 调用类型转换的方法需要引入头文件
#import <TuSDK/TuSDKTSPHAssets+Extend.h>
#import <TUSDK/TuSDKTSALAssets+Extend.h>
PhotoKit
,为了适配和兼顾 TuSDK 对照片对象的两种类型进行了封装使用。result.imageAsset
的类型转换,转换方法如下: // 对 result.imageAsset 进行系统转换需要对使用设备的系统版本机型判断
TuSDKTSPHAsset *assetWrapPH = (TuSDKTSPHAsset *)result.imageAsset;
NSLog(@"phassets: %@",assetWrapPH.asset);
TuSDKTSALAsset *assetWrapAL = (TuSDKTSALAsset *)result.imageAsset;
NSLog(@"alassets: %@",assetWrapAL.asset);
©2019-2024 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 浙公网安备33010602001649号