PhotoKit详解
Photokit介绍
这篇主要介绍如何通过 Photokit获取数据
1,基类 PHObject
Photos 框架中的根类PHObject只有一个公开接口 localIdentifier,是对象唯一标志符.PHObject实现了-isEqual 和-hash方法.可以直接使用localIdentifier属性对PHObject及其子类对象进行对比是否同一个对象
2,数据类型
PHAsset 、PHAssetCollection、PHCollectionList 是Photos框架中的模型类
PHAsset :代表系统的一个图片,视频或者Live Photo
PHAssetCollection:是一组有序的资源集合,包括相册、moments、智能相册以及共享照片流.比如:系统相册里的时刻一个分类,用户创建的相册或者智能相册
PHCollectionList : 相册集合, 比如:时刻里的年或者包含用户创建的一个或者多个相册
表示一组PHCollection,而它本身也是一个PHCollection,因此PHCollection作为一个集合,可以包含其他集合
如下资源结构图:
2.1 PHAsset.h
2.1.1 PHAsset
代表系统的一个图片,视频或者Live Photo
属性介绍:
[1] mediaType :资源类型,图片或者音频或视频
PHAssetMediaTypeUnknown = 0,
PHAssetMediaTypeImage = 1,
PHAssetMediaTypeVideo = 2,
PHAssetMediaTypeAudio = 3,
[2] mediaSubtypes
图片又包含全景图(Panorama)、HDR图片、屏幕截图、livePhoto .live photo 加3Dtouch效果 我们可以使用照片资源的 mediaSubtypes 属性验证资源库中的图像在捕捉时是否开启了 HDR,拍摄时是否使用了相机应用的全景模式
PHAssetMediaSubtypeNone = 0,
// Photo subtypes
PHAssetMediaSubtypePhotoPanorama
PHAssetMediaSubtypePhotoHDR
PHAssetMediaSubtypePhotoScreenshot
PHAssetMediaSubtypePhotoLive
PHAssetMediaSubtypePhotoDepthEffect
// Video subtypes
PHAssetMediaSubtypeVideoStreamed = (1UL << 16),
PHAssetMediaSubtypeVideoHighFrameRate = (1UL << 17),
PHAssetMediaSubtypeVideoTimelapse
[3] pixelWidth 像素宽度 pixelHeight 高度
[4] creationDate 创建时间 modificationDate 修改时间 location 位置信息 duration时长
[5] hidden 要验证一个资源是否被用户标记为收被隐藏,只要检查 PHAsset 实例的 hidden 属性即可。
[6] Favorite 布尔值,用户是否标记资源为"收藏",我们平时浏览照片或视频,在下方点
PhotoKit详解的更多相关文章
- iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)
本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文<iOS ...
- iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)
转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-two.html 一. 概况 本文接着 iOS 开 ...
- iOS 开发之照片框架详解
转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework.html 一. 概要 在 iOS 设备中,照片和视频是相当重 ...
- iOS 开发之照片框架详解(2)
一. 概况 本文接着 iOS 开发之照片框架详解,侧重介绍在前文中简单介绍过的 PhotoKit 及其与 ALAssetLibrary 的差异,以及如何基于 PhotoKit 与 AlAssetLib ...
- 《招一个靠谱的移动开发》iOS面试题及详解(下篇)
iOS面试知识点 现在进入本篇的正题.本篇的面试题是我认为比较好的iOS开发基础知识点,希望大家看过这后在理解的基础上掌握而不是死记硬背.死记硬背很快也会忘记的. 1 iOS基础 1.1 父类实现深拷 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
随机推荐
- Hive 脚本执行
hive执行脚本 hive -e “sql语句” 会将查询的结果打印在控制台上. hive -e “sql语句” >> xxx 会将查询的结果重定向到xxx文件中,会显示OK和抓取的数据 ...
- [Create_Cdi]
bbb 原理:游标就是把数据按照指定要求提取出相应的数据集,然后逐条进行数据处理.1.1游标的概念 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集. 使用游标(cursor ...
- notepad++ 在每一行最后加上逗号
1.全选缩进对齐 2.替换功能,入下全部替换 3.在入下替换 4.结果 完成!
- Exposing the Outlook Password Secrets
Exposing the Outlook Password Secrets - www.SecurityXploded.comhttp://securityxploded.com/outlookpas ...
- 小计一次linux下渗透方法
本文转自91ri 踩点 目标域名是XX.com 我们的目标是大站,所以主站一般都挺安全的,所以直接寻找二级目录,运气好时能找到一些开源的cms,运气更好点找到个dede啥的,那就…. 我们直接枚举他域 ...
- Android学习(十六) 通过GestureOverlayView进行手势识别
一.使用GestureOverlayView进行手势识别: 1.使用Gestures Builder生成手势文件,Gestures Builder为SDK中的示例项目,使用new-->Other ...
- hdu - 4974 - A simple water problem(贪心 + 反证)
题意:N个队(N <= 100000),每一个队有个总分ai(ai <= 1000000),每场比赛比赛两方最多各可获得1分,问最少经过了多少场比赛. 题目链接:http://acm.hd ...
- Android应用程序快速更换包名的方法
今天遇到需要修改Android包名的问题,开始试了直接修改包名,会出现一些错误 1.layout中直接引用类的地方 2.Manifest中对gen定义的地方 经测试,总结出一下方法: 1.关闭自动编译 ...
- Jmeter返回org.apache.http.NoHttpResponseException: The target server failed to respond解决办法
1.问题:这段时间使用jmeter压测时(300个请求,持续压300s,加速期10s),压力平稳时偶然错误,部分请求失败事务报错信息如下 org.apache.http.NoHttpResponseE ...
- spark入门(helloworld插件)
1 http://www.cnblogs.com/openfire/archive/2013/04/26/3044722.html 2 在bulid文件夹下,(注意为主目录不是插件下的bulid.xm ...