iOS8新特性扩展(Extension)应用之三——照片编辑插件

简介: iOS8新特性扩展(Extension)应用之三——照片编辑插件

iOS8新特性扩展(Extension)应用之三——照片编辑插件


       通过前几篇博客的介绍,我们了解到扩展给app提供的更加强大的交互能力,这种强大的交互能力另一方面体现在照片编辑插件的应用。


      和通常一样,我们先创建一个工程,然后新建一个Target,选择photo editing:


image.png


从模板中,我们可以看到系统为我们创建了一个controller,这个controller就是用于处理照片的controller,其中方法如下:


- (BOOL)canHandleAdjustmentData:(PHAdjustmentData *)adjustmentData {

   // Inspect the adjustmentData to determine whether your extension can work with past edits.

   // (Typically, you use its formatIdentifier and formatVersion properties to do this.)

   return NO;

}

//这个函数用于从系统相册获取到选中的照片,contentEditingInput对象中存有响应的数据类型和image对象

- (void)startContentEditingWithInput:(PHContentEditingInput *)contentEditingInput placeholderImage:(UIImage *)placeholderImage {

  //我们可以在这里将取到的数据进行展示等等

   self.input = contentEditingInput;

}

//结束编辑照片时的方法

- (void)finishContentEditingWithCompletionHandler:(void (^)(PHContentEditingOutput *))completionHandler {

   // Update UI to reflect that editing has finished and output is being rendered.

 

   // Render and provide output on a background queue.

   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

       // Create editing output from the editing input.

       PHContentEditingOutput *output = [[PHContentEditingOutput alloc] initWithContentEditingInput:self.input];

     

       //我们可以在这里将新的图片数据写入到输出流中

       // output.adjustmentData = <#new adjustment data#>;

       // NSData *renderedJPEGData = <#output JPEG#>;

       // [renderedJPEGData writeToURL:output.renderedContentURL atomically:YES];

     

       // Call completion handler to commit edit to Photos.

       completionHandler(output);

     

       // Clean up temporary files, etc.

   });

}

在当前扩展执行结束编辑之前,我们可以自由渲染我们得到的图片,例如添加相框,文字等等,输出时将渲染后的图片进行输出即可。


这里还有一个地方需要我们注意,此类扩展有一个功能,如果我们中途退出编辑,系统会为我们保存我们扩展的处理状态,为了区分多个类似功能的扩展,在输出数据的对象中有一个PHAdjustmentData类型的对象,这个对象专门用于负责版本的记录,这个对象中有如下两个属性用于区分版本:



@property (readonly, copy) NSString *formatIdentifier;


@property (readonly, copy) NSString *formatVersion;

目录
相关文章
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术特性与用户体验的深度解析
在移动操作系统的战场上,安卓和iOS一直占据着主导地位。本文将深入探讨这两大平台的核心技术特性,以及它们如何影响用户的体验。我们将从系统架构、应用生态、安全性能和创新功能四个方面进行比较,帮助读者更好地理解这两个系统的异同。
431 30
|
8月前
|
iOS开发
ios虚拟摄像头插件,iPhone苹果替换相机软件,通过xposed框架实现
本项目包含三部分内容:1) 通过MobileSubstrate Hook系统相机进程,替换原始视频流数据的核心代码;2) 基于SwiftUI设计的多功能摄像头界面,支持摄像头切换、滤镜选择和视频源配置;3) 使用PHPickerViewController实现本地视频选择、时长滑块控制及视频裁剪导出功能。适用于学习iOS底层Hook技术与现代UI开发结合的应用场景。下载地址:https://www.pan38.com/share.php?code=BCjmZ,提取码:8888(仅供学习参考)。
|
8月前
|
安全 数据安全/隐私保护 iOS开发
ios一键新机硬改软件,苹果改机型用什么插件,串号Imei过检测工具
本文介绍了苹果设备的安全机制、开发接口及企业解决方案。核心安全包括硬件级防护(Secure Enclave、IMEI锁、T2芯片)和软件防护(启动链验证、KTRR、沙盒控制)。
|
JavaScript 前端开发 iOS开发
ios样式开关按钮jQuery插件
ios样式开关按钮jQuery插件
206 7
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
403 9
|
数据安全/隐私保护 iOS开发 开发者
iOS 14隐私保护新特性深度解析####
随着数字时代的到来,隐私保护已成为全球用户最为关注的问题之一。苹果在最新的iOS 14系统中引入了一系列创新功能,旨在增强用户的隐私和数据安全。本文将深入探讨iOS 14中的几大隐私保护新特性,包括App跟踪透明度、剪贴板访问通知和智能防追踪功能,分析这些功能如何提升用户隐私保护,并评估它们对开发者和用户体验的影响。 ####
|
安全 定位技术 数据安全/隐私保护
深入探索iOS 15新特性:用户体验与隐私保护的革新
本文将深入探讨苹果公司最新操作系统iOS 15带来的创新功能,特别是那些对用户日常体验和数据隐私产生重大影响的特性。我们将重点分析FaceTime的新功能、通知管理的改进、以及隐私保护的增强措施,展示这些更新如何提升用户的生活质量和信息安全。
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
954 6
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术特性与用户体验的深度剖析
在移动操作系统的战场上,安卓和iOS一直是两个重量级选手。本文将深入探讨两者的技术架构、安全性、应用生态以及用户体验等方面的差异,并尝试从用户和开发者的角度出发,分析这两个系统的优势与不足。通过比较,我们不仅能更好地理解各自的特点,还能洞察未来移动技术的发展趋势。
360 3
|
开发工具 Android开发 iOS开发
移动应用开发的艺术:探索Android与iOS的操作系统特性
【9月更文挑战第33天】在数字时代的浪潮中,移动应用已成为我们日常生活不可或缺的一部分。本文将深入探讨两个主流移动操作系统——Android和iOS——的独特特性,并分析它们如何影响移动应用的开发过程。我们将通过比较这两个系统的设计哲学、用户界面(UI)设计、开发工具以及市场策略,来揭示开发者如何在这些不同的平台上打造出色的用户体验。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解。