Swift4.0--Photos框架的使用附从相簿中获取图片

2023-11-11

首先发布Demo链接
Photos从相簿中获取图片

效果展示

这里写图片描述

这里写图片描述
(一) Photos简介

在iOS 8之前,开发者只能用 AssetsLibrary
框架访问的用户的照片库。几年以来,相机应用和照片应用发生了显著的变化,增加了许多新特性,包括按时刻来组织照片的方式。但与此同时,AssetsLibrary
框架却没有跟上步伐。 随着 iOS 8 的到来,苹果给我们提供了一个现代化的框架 Photos,它比 AssetsLibrary
表现更好,并且拥有让应用和设备照片库无缝工作的特性。

(二)解释

几个常用的类:

PHAsset : 代表照片库中的一个资源,跟 ALAsset 类似,通过 PHAsset
可以获取和保存资源。每个PHAsset就是一张图片的详细信息,包括图片、位置、时间等。

PHFetchOptions : 获取资源时的参数,可以传 nil,即使用系统默认值。

PHFetchResult : 表示一系列的资源集合,也可以是相册的集合。

PHAssetCollection :
表示一个相册或者一个时刻,或者是一个智能相册(系统提供的特定的一系列相册,例如:最近删除,视频列表,收藏等等)。

PHImageManager : 用于处理资源的加载,加载图片的过程带有缓存处理,可以通过传入一个
PHImageRequestOptions 控制资源的输出尺寸等规格。

enum PHAssetCollectionType : Int {
    case Album //从 iTunes 同步来的相册,以及用户在 Photos 中自己建立的相册
    case SmartAlbum //经由相机得来的相册
    case Moment //Photos 为我们自动生成的时间分组的相册
}

enum PHAssetCollectionSubtype : Int {
    case AlbumRegular //用户在 Photos 中创建的相册,也就是我所谓的逻辑相册
    case AlbumSyncedEvent //使用 iTunes 从 Photos 照片库或者 iPhoto 照片库同步过来的事件。然而,在iTunes 12 以及iOS 9.0 beta4上,选用该类型没法获取同步的事件相册,而必须使用AlbumSyncedAlbum。
    case AlbumSyncedFaces //使用 iTunes 从 Photos 照片库或者 iPhoto 照片库同步的人物相册。
    case AlbumSyncedAlbum //做了 AlbumSyncedEvent 应该做的事
    case AlbumImported //从相机或是外部存储导入的相册,完全没有这方面的使用经验,没法验证。
    case AlbumMyPhotoStream //用户的 iCloud 照片流
    case AlbumCloudShared //用户使用 iCloud 共享的相册
    case SmartAlbumGeneric //文档解释为非特殊类型的相册,主要包括从 iPhoto 同步过来的相册。由于本人的 iPhoto 已被 Photos 替代,无法验证。不过,在我的 iPad mini 上是无法获取的,而下面类型的相册,尽管没有包含照片或视频,但能够获取到。
    case SmartAlbumPanoramas //相机拍摄的全景照片
    case SmartAlbumVideos //相机拍摄的视频
    case SmartAlbumFavorites //收藏文件夹
    case SmartAlbumTimelapses 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift4.0--Photos框架的使用附从相簿中获取图片 的相关文章

随机推荐

  • Sql Server 日期函数

    1 一个月第一天的复制 保存Select DATEADD mm DATEDIFF mm 0 getdate 0 2 本周的星期一复制 保存Select DATEADD wk DATEDIFF wk 0 getdate 0 3 一年的第一天复
  • ceph存储 pg归置组处于stuck以及degraded状态解决方案

    由于对ceph的兴趣 我们经常自己搭建ceph集群 可能是单节点 也可能是多节点 但是经常遇到pg归置组异常状态 下面是遇到的一些情况 1 单节点的时候pg归置组unclean或者degraded 这个时候应该检查 自己是几个osd 副本数
  • BSC主网链搭建,如何在不到24小时之内同步完成?

    还是老样子 在本篇文档开始之前 大概说明一下本次BSC同步的情况 服务器环境 服务器 阿里云服务器 CPU 16核 内存 64 GB 数据盘 3T SSD 数据盘 带宽 独享 200M 区域 美国弗吉尼亚 软件环境 centos 7 9 B
  • jqGrid 常用方法和事件

    jqGrid 常用方法整理 常用方法 获取行数据 删除行数据 重新加载表格 动态设置列显示隐藏 常用事件 常用方法 获取行数据 div div 1 获取所有行数据 jqGrid getRowData 或者 var IDS jqGrid ge
  • 小型软件公司的绩效考核

    近几个月 我常和一些朋友讨论如何在小型软件公司中对软件开发人员进行绩效考核的问题 发现很多朋友都为此问题而烦恼 由于我正好在一家小型软件公司里负 责绩效考核工作 有一些成功的实践经验 所以特此在这里与大家交流一下我的心得 这些心得可能仅限于
  • 通过python构建一个区块链来学习区块链

    了解区块链Blockchains如何工作的最快方法就是构建一个区块链 你来到这里是因为 和我一样 你对加密钱币的崛起感到很兴奋 而且你想知道区块链是如何工作的 想了解它们背后的基本技术 但理解区块链并不容易 或者至少不适合我 我在密集的视频
  • Fisco-bsco 开发联盟链 账户之间的转账

    Fisco bsco 开发联盟链 账户之间的转账 参考 开发第一个区块链应用 FISCO BCOS v2 9 0 文档 fisco bcos documentation readthedocs io 前提 Fisco bcos节点开启 控制
  • 容器性能比无容器服务器,【译】容器 vs 无服务器(Serverless)

    一些历史 不久之前 开发 部署和运维还相当复杂 在一开始 运维不仅需要修补程序代码 还要支持物理机器 保持服务器 硬件与软件处于最新状态也是一项艰巨的任务 在2000年代 一个新的模型 架构即服务 IaaS 很快流行起来 IaaS提供了从第
  • OSG的控制台报错处理

    OSG报错或者出现警告怎么办 最快解决方法是查资料问人 但是都不凑效的情况下 只能分析源码了 报错信息如下 报错调用方定位 触发位置 State cpp bool State checkGLErrors StateAttribute GLM
  • JSP连接数据库

    2019 10 15 JSP连接数据库 一 连接数据库需要用到的包为mysql connector java 5 1 20 bin jar 导入包的方法有两种 1 在Java Build Path中倒导入 2 把我们需要的包拷入WEB IN
  • Java之XML解析-使用dom(org.w3c.dom)解析XML

    转自 Java之XML解析 使用dom org w3c dom 解析XML 下文笔者将讲述使用W3C org w3c dom 提供的接口 解析XML文档的方法分享 W3C解析xml文档的方法 将整个xml文档读入内存 然后构建一个DOM树
  • 如何查看和修改gcc、g++默认include路径

    如何查找gcc g 默认include路径 注意 是Tab上面的那个符号 gcc gcc print prog name cc1plus v g g print prog name cc1plus v 我们都知道在编译的预处理阶段 编译器会
  • Python爬虫的requests(学习于b站尚硅谷)

    目录 一 requests 1 requests的基本使用 1 文档 2 安装 3 响应response的属性以及类型 4 代码演示 2 requests之get请求 3 requests之post请求 1 演示示例 爬取百度翻译 2 ge
  • simulink半桥逆变电路仿真

    逆变是将直流变为脉冲方波信号 电压是100V的 第一幅为原始直流信号 第二幅是逆变电流 第三幅是逆变电压 参数设置 图3 RC1 图4 RC 图5 晶闸管 图6 脉冲信号的参数
  • Java常用类(比较器、System类、Math类、BigInteger和BigDecimal类)

    Java常用类 比较器 System类 Math类 BigInteger和BigDecimal类 一 比较器 一 自然排序 使用Comparable接口 二 定制排序 使用Comparator接口 二 System类 三 Math类 四 B
  • ServletContext

    ServletContext上下文提供对应用程序中所有Servlet所共有的各种资源和功能的访问 Servlet上下文 API用于设置应用程序中所有Servlet共有的信息 Servlet可能需要共享他们之间的共有信息 运行于同 一服务器的
  • 如何使用groovy语言访问url时绕过https ssl认证校验?

    记录一下使用groovy解决https ssl校验问题 import javax net ssl HostnameVerifier import javax net ssl HttpsURLConnection import javax n
  • 生产数据库数据误删、错刷恢复备份实战

    文章目录 故障起因 前提 全备 全备脚本 增备 数据库配置要求 增备脚本 定时备份 故障处理 思路 全备恢复 解析增备 新建binlog解析导出目录 查看整点binlog列表 将每个整点的增量备份文件导出到sql文件 选定结束导入的SQL文
  • react函数式组件(hooks)之useEffect

    文章目录 前言 一 useEffect的作用 二 useEffect的使用 1 class组件 2 函数式组件 总结 前言 React函数式编程没有生命周期 因此需要借助useEffect来实现 一 useEffect的作用 发ajax请求
  • Swift4.0--Photos框架的使用附从相簿中获取图片

    首先发布Demo链接 Photos从相簿中获取图片 效果展示 一 Photos简介 在iOS 8之前 开发者只能用 AssetsLibrary 框架访问的用户的照片库 几年以来 相机应用和照片应用发生了显著的变化 增加了许多新特性 包括按时