TuSDK 为涂图照相应用的SDK,打包后文件大小约为5M,缺点为包比较大,且图片清晰度较差一些,优点为直接可以引用滤镜贴纸,方便易用。
 
使用方法如下: 
 
1.AppDelegate.m 中加入如下代码行:
 
    [TuSDKinitSdkWithAppKey:@"20411a706f17b358-00-8y5nq1”];
 
记载tuSDK App 应用的key
 
 
2.ViewController 中加入如下代码行:
 
声明方法:
 
继承:
 
@interface ViewController : TuSDKICViewController
 
声明变量
 
@interfaceViewController ()<TuSDKFilterManagerDelegate>
{
    CameraAndEditorSample *cameraComponentSample;
    EditMultipleComponentSample *editcomponent;
}

声明中先声明两个对象  CameraAndEditorSample 和 EditMultipleComponentSample
 
 
    [selfshowHubWithStatus:LSQString(@"lsq_initing", @"正在初始化")];
    [TuSDKcheckManagerWithDelegate:self];
    NSLog(@"版本号 : %@",lsqSDKVersion);
 
初始化TuSDK 方法 
 
- (void)onTuSDKFilterManagerInited:(TuSDKFilterManager *)manager
{
    [selfshowHubSuccessWithStatus:LSQString(@"lsq_inited", @"初始化完成")];
}
 
初始化完成调用如上方法
 
- (IBAction)actionCamera:(UIButton *)btn {
    if(cameraComponentSample == nil) {
        cameraComponentSample = [CameraAndEditorSamplesample];
    }
    [cameraComponentSampleshowSampleWithController:self];
}

- (IBAction)actionPhoto:(UIButton *)sender {

    if (editcomponent == nil)
        editcomponent = [EditMultipleComponentSamplesample];
    [editcomponentshowSampleWithController:self];
}
 
调用如上命令行来应用此方法
 
 
 
3. CameraAndEditorSample.h 文件中持有处理后图片方法 :
 
 
 
- (void)openEditMultipleWithController:(UIViewController *)controller
                                result:(TuSDKResult *)result;
{
    if (!controller || !result) return;
   
    // 组件选项配置
    // @see-https://tusdk.com/docs/ios/api-gee/Classes/TuSDKCPPhotoEditMultipleComponent.html
    _photoEditMultipleComponent =
    [TuSDKGeeV1photoEditMultipleWithController:controller
                                  callbackBlock:^(TuSDKResult *result, NSError *error, UIViewController *controller)
     {
        
         // 如果以 pushViewController 方式打开编辑器, autoDismissWhenCompelted参数将无效, 请使用以下方法关闭
         //if (_photoEditMultipleComponent.autoDismissWhenCompelted && controller) {
         //    [controller popViewControllerAnimated:YES];
         //}
        
         // 获取图片失败
         if (error) {
             lsqLError(@"editMultiple error: %@", error.userInfo);
             return;
         }
         [result logInfo];
         //[self openEditorWithImage:result.image];
         // 可在此添加自定义方法,将result结果传出,例如:  [self openEditorWithImage:result.image];
         // 并在外部使用方法接收result结果,例如: -(void)openEditorWithImage:(UIImage *)image;
     }];
    [selfopenEditorWithImage:result.image]; //持有图片方法
    // 设置图片
    _photoEditMultipleComponent.inputImage = result.image;
    _photoEditMultipleComponent.inputTempFilePath = result.imagePath;
    _photoEditMultipleComponent.inputAsset = result.imageAsset;
    // 是否在组件执行完成后自动关闭组件 (默认:NO)
    _photoEditMultipleComponent.autoDismissWhenCompelted = YES;
    // 当上一个页面是NavigationController时,是否通过 pushViewController 方式打开编辑器视图 (默认:NO,默认以 presentViewController 方式打开)
    // SDK 内部组件采用了一致的界面设计,会通过 push 方式打开视图。如果用户开启了该选项,在调用时可能会遇到布局不兼容问题,请谨慎处理。
    _photoEditMultipleComponent.autoPushViewController = YES;
    [_photoEditMultipleComponentshowComponent];
}
 
-(void)openEditorWithImage:(UIImage *)image
{
    NSLog(@"Finalimage = %@", image);
    [[NSNotificationCenterdefaultCenter] postNotificationName:@"imagePost"object:image];
}
 
 
通过通知方法来告知其他模块来持有处理后的图片,进行显示出来
 
 
然后在需要用到图片的地方调用此通知:
 
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(getPhoto:) name:@"imagePost"object:nil];
 
 
- (void)getPhoto:(NSNotification *)sender
{
    _imageView.image = sender.object;
    NSLog(@"sender : %@",sender);
}
 
便可以拿到此图片对象 sender.object 
 
 
 

最新文章

  1. 自用的基于Emit的C#下DataTable转实体类方法
  2. [LeetCode] Set Matrix Zeroes 矩阵赋零
  3. Comet4J推技术在SSHE三大框架中应用-linux下亲测可用
  4. 浅谈Winform事件的实现以及模拟其事件的实现(附实现源码)
  5. wildfly jsf 文件 上传后 可以下载 访问
  6. {matlab}取二值图像centroid几种方法性能比较
  7. Django模板系统
  8. Hadoop处理大量小文件的问题和解决方法
  9. 记录类型中String的释放
  10. (转)ObjC利用正则表达式抓取网页内容(网络爬虫)
  11. iOS开发获取缓存文件的大小并清除缓存
  12. java里程碑之泛型--泛型注意的几点
  13. iOS下JS与原生OC互相调用(总结)
  14. Shiro之身份认证、与spring集成(入门级)
  15. Ubuntu 16.04 安装垃圾清理工具 BleachBit
  16. Android Handler的内存泄露问题+解决方案
  17. 使用v-for循环写入html内容,每一项的数据的写入
  18. 如何运行spring项目,并打成jar包进行发布
  19. BatSendMail
  20. uwp ,win10 post json

热门文章

  1. Backbone源码解读(一)事件模块
  2. LINQ to Sql系列一 增,删,改
  3. Flash对不同的浏览器的兼容性
  4. Pomelo聊天室框架
  5. JSP 禁用脚本设置
  6. 如何在Crystal框架项目中内置启动Zookeeper服务?
  7. iOS-如何使用symbolicatecrash
  8. DEVTMPFS
  9. 蓝桥网试题 java 基础练习 分解质因数
  10. ThreadLocal模式的原理