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 
 
 
 

TuSDK 简易使用方法 持有图片对象方式的更多相关文章

  1. UIImage加载图片的方式以及Images.xcassets对于加载方法的影响

    UIImage加载图片的方式以及Images.xcassets对于加载方法的影响 图片缓存 根据是否将创建好的对象缓存入系统内存,有两类创建UIImage对象的方法可选: 缓存:+ imageName ...

  2. C++ 通过对象方式 、指针方式两种方式去访问成员变量(属性或者方法)

    准备 1.在VS中新建一个项目-Viscal C++ ---常规--空项目 2.建立一个.h的头文件 定义一个类 声明其成员(C#中的属性和方法) #include<iostream> # ...

  3. win10图片打开方式里没有默认照片查看器的解决方法

    今天安装好win10后发现打开图片的默认程序是win10自带的画图工具,非常不方便,并且右键选择打开方式里边也找不到默认的“照片查看器”.百度搜索了一下关于win10打开方式恢复默认照片查看器的方法, ...

  4. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  5. 为什么阿里Java手册推荐慎用 Object 的 clone 方法来拷贝对象

    图片若无法显示,可至掘金查看https://juejin.im/post/5d425230f265da039519d248 前言 在阿里Java开发手册中,有这么一条建议:慎用 Object 的 cl ...

  6. 自己实现简单的AOP(二)引入Attribute 为方法指定增强对象

    话续前文 : 自己实现简单的AOP(一)简介 在前一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象 ...

  7. UI-UIImageView的图片填充方式(contentMode)_图片作为控件背景图的拉伸方式(stretch)介绍

    常用图片填充方式 这里只介绍三个最常用的图片填充方式 UIViewContentModeScaleToFill模式会导致图片变形.例如: UIViewContentModeScaleAspectFit ...

  8. 9、Cocos2dx 3.0游戏开发三查找值小工厂方法模式和对象

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27704153 工厂方法模式 工厂方法是程序设计中一个 ...

  9. 9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27704153 工厂方法模式 工厂方法是程序设计中一个 ...

随机推荐

  1. jQuery基本过滤选择器

    jQuery基本过滤选择器: <h1>this is h1</h1> <div id="p1"> <h2>this is h2< ...

  2. Spring @Aspect进行类的接口扩展

    Spring @Aspect进行类的接口扩展: XML: <?xml version="1.0" encoding="UTF-8"?> <be ...

  3. overflow:hidden 你所不知道的事

    overflow:hidden 你所不知道的事 overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解. ...

  4. Express之get,pos请求参数的获取

    Express的版本4.X Get query参数的获取 url假设:http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool& ...

  5. PHP文本处理之中文汉字字符串转换为数组

    在PHP中我们可以通过str_split 将字符串转换为数组,但是却对中文无效,下面记录一下个人将中文字符串转换为数组的方法. 用到的PHP函数 mb_strlen - 获取字符串的长度 mb_sub ...

  6. 763A - Timofey and a tree

    A. Timofey and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  7. delete和delete[]

    c++中对new申请的内存的释放方式有delete和delete[两种方式,到底这两者有什么区别呢? 1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存dele ...

  8. 【小分享】Date对象封装,时间格式化函数time()

    今天再来分享下Date的应用知识点 先看效果,类似于php里边的time('yyyy-mm-dd')用法,但是我这里没有完全依照php的参数格式来,如果有需要稍微修改一下就行. 首先,明确需要用到的参 ...

  9. sessionstorage,localstorage和cookie之间的区别以及各自的用法

    由于年前辞了自己的工作,年后又开始重新找工作,参加了好几次面试,居然都遇到了同样的面试题:sessionstorage,localstorage和cookie之间的是区别? 当然,在面试的时候答的也不 ...

  10. UITextField总结

    ----------------- 监听文字有多长 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:( ...