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-2025 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 |
浙公网安备33010602001649号