ios学习--照片框架详解之二 —— PhotoKit 详解(下)
2016-03-24 16:56
357 查看
这里接着前文《iOS
开发之照片框架详解之二 —— PhotoKit 详解(上)》,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法。
这里列举了四种常用的封装好的方法:原图,缩略图,预览图,方向,下面直接上代码,代码中有相关注释解释其中的要点。其中下面的代码中常常出现的 [[QMUIAssetsManager sharedInstance] phCachingImageManager] 是 QMUI 框架中封装的类以及单例方法,表示产生一个 PHCachingImageManager 的单例,这样做的好处是 PHCachingImageManager 需要占用较多的资源,因此使用单例可以避免无谓的资源消耗,另外请求图像等方法需要基于用一个 PHCachingImageManager
实例才能进行进度续传,管理请求等操作。
.h 文件
.m 文件
.h 文件
.m 文件
.h 文件
.m 文件
.h 文件
.m 文件
开发之照片框架详解之二 —— PhotoKit 详解(上)》,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法。
三. 常用方法的封装
虽然 PhotoKit 的功能强大很多,但基于兼容 iOS 8.0 以下版本的考虑,暂时可能仍无法抛弃 ALAssetLibrary,这时候一个比较好的方案是基于 ALAssetLibrary 和 PhotoKit 封装出一系列模拟系统 Asset 类的自定义类,然后在其中封装好兼容 ALAssetLibrary 和 PhotoKit 的方法。这里列举了四种常用的封装好的方法:原图,缩略图,预览图,方向,下面直接上代码,代码中有相关注释解释其中的要点。其中下面的代码中常常出现的 [[QMUIAssetsManager sharedInstance] phCachingImageManager] 是 QMUI 框架中封装的类以及单例方法,表示产生一个 PHCachingImageManager 的单例,这样做的好处是 PHCachingImageManager 需要占用较多的资源,因此使用单例可以避免无谓的资源消耗,另外请求图像等方法需要基于用一个 PHCachingImageManager
实例才能进行进度续传,管理请求等操作。
1. 原图
由于原图的尺寸通常会比较大,因此建议使用异步拉取,但这里仍同时列举同步拉取的方法。这里需要留意如前文中所述,ALAssetRepresentation 中获取原图的接口 fullResolutionImage 所得到的图像并没有带上系统相册“编辑”(选中,滤镜等)的效果,需要额外获取这些效果并手工叠加到图像上。.h 文件
2. 缩略图
相对于在拉取原图时 ALAssetLibrary 的部分需要手工叠加系统相册的“编辑”效果,拉取缩略图则简单一些,因为系统接口拉取到的缩略图已经带上“编辑”的效果了。.h 文件
3. 预览图
与上面的方法类似,不再展开说明。.h 文件
4. 方向(imageOrientation)
比较奇怪的是,无论在 PhotoKit 或者是 ALAssetLibrary 中,要想获取到准确的图像方向,只能通过某些 key 检索所得。.h 文件
相关文章推荐
- iOS开发 字符串的转化 小技巧
- ios学习--照片框架详解之二 —— PhotoKit 详解(上)
- ios屏幕旋转学习笔记
- iOS下input调用不同键盘
- ios学习--照片框架详解
- 招聘一个靠谱的 iOS
- iOS随机数生成
- iOS App集成Apple Pay 编程指南
- iOS-通知与消息机制
- iOS中飞行模式或无网提示
- iOS 异步图片加载优化与常用开源库分析
- (适用于)ios 搜索标签列表 商城规格标签列表
- Win8换成Win7系统问题小结(修改主板BIOS方法)
- IOS 开发 证书显示 此证书签发者无效
- 介绍一个轻量级iOS安全框架:SSKeyChain
- iOS开发编码建议与编程经验(持续更新中)
- NSTimer保留目标对象引起循环引用造成内存泄漏解决办法
- IOS如何使用CAShapeLayer实现复杂的View的遮罩效果
- iOS-利用插件实时刷新模拟器(提高效率)
- iOS开发-OpenGLES 入门踩坑