技术源于生活,服务生活 Terry 随笔

Photos框架翻译

2017-03-20
Terry
iOS

原文地址

Photos框架

  使用照片应用管理的图片和视频资源,包括来自iCloud照片库和实时照片的图片和视频资源。 以异步方式获取和缓存全尺寸资源或缩略图,修改内容,以及将修订版同步到多个设备。

概述

  在iOS和macOS中,Photos框架提供了支持为照片应用程序构建照片编辑扩展程序的类。 在iOS和tvOS中,Photos框架还可以直接访问由照片应用管理的照片和视频资源,包括iCloud照片库。 使用此框架可以检索内容以进行显示和播放,编辑其图像或视频内容,或使用资产集合(如专辑,时刻和iCloud共享相册)。

特征 & 概念

  在iOS和tvOS中,Photos框架包含许多直接与用户的照片库一起工作的功能。

  • 获取对象和请求更改   Photos框架模型类(PHAssetPHAssetCollectionPHCollectionList)的实例表示用户在照片应用中使用的项:资产(图片,视频和实时照片),资产集合(如相册或时刻)和 集合列表(例如专辑文件夹或时刻集群)。 这些对象是只读的,不可变的,并且只包含元数据。   通过获取您感兴趣的资源和集合,然后使用这些对象来获取需要处理的数据。 要进行更改,请创建更改请求对象,并将其显式提交到共享的PHPhotoLibrary对象。 此架构可让您轻松,安全,高效地使用来自多个主题或多个应用和应用扩展的相同资源。

  • 观察变化   使用共享的PHPhotoLibrary对象为您获取的资产和集合注册变化处理程序。 当其他应用或设备更改资源的内容或元数据或集合中的资源列表时,照片会告诉您的应用。 PHChange对象提供有关每个更改之前和之后的对象状态的信息,以便于更新集合视图或类似接口。

  • 支持照片app的功能   使用PHCollectionList类来查找照片应用程序中与“时刻”层次结构相对应的资产。 使用PHAsset类来识别突发照片,全景照片和高帧率视频。 启用iCloud照片库后,Photos框架中的资源和集合反映同一iCloud帐户中所有设备上的可用内容。

  • 资产和缩略图加载和缓存   使用PHImageManager类请求指定大小的资产的图像,或使用AV Foundation对象处理视频资产。 Photos框架根据你的指定自动下载或生成图像,缓存它们以便快速重用。 为了提高性能,例如,在使用缩略图填充集合视图时,PHCachingImageManager子类会添加批量预加载。

  • 内容编辑   PHAssetPHAssetChangeRequest类定义了请求照片或视频内容进行编辑的方法,并将您的编辑提交到照片库。 为了支持不同应用程序和扩展程序之间的编辑连续性,Photos保留每个资产的当前版本和以前的版本,以及描述上次编辑的PHAdjustmentData对象。 如果您的应用程式支持上一次编辑的调整,您可以允许使用者还原或变更编辑内容。

在iOS和macOS中,Photos框架提供了类用于开发照片编辑扩展以用于照片应用程序; 然而,扩展的主类必须采用由PhotosUI框架定义的PHContentEditingController协议。

相关类

与照片库交互

  获取访问权限,更改资产和集合以及注册照片库更改时发送的更新消息的权限。

说明
PHPhotoLibrary 管理对用户的照片库的访问和更改的共享对象。

检索

  这些模型类表示照片库的内容:资源和集合。这些类的实例是只读的,不可变的,并且只包含元数据。要使用资产和集合,您可以使用这些类来获取与指定查询匹配的一组对象。

说明
PHAsset 图片,视频或实时照片在照片库中的表示
PHAssetCollection Photos资源分组的表示形式,例如片刻,用户创建的相册或智能相册
PHCollectionList 包含Photos资源集合的群组的表示,例如片刻年份或用户创建的相册的文件夹
PHCollection Photos资源集合和集合列表的抽象父类
PHObject Photos模型对象(资产和集合)的抽象超类
PHFetchResult 从照片提取方法返回的资源或集合的有序列表。
PHFetchOptions 一组影响过滤,排序和管理结果的选项

加载资源内容

  使用这些类来请求与相册资源相关联的图片,视频或实时照片内容。照片根据你的指定自动下载或生成图像,缓存它们以便快速重用。您还可以请求批量预加载图像,以便利用大量资产提高性能。

说明
PHImageManager 提供用于检索或生成预览缩略图以及与相册资源相关联的全尺寸图片或视频数据的方法。
PHCachingImageManager 提供用于检索或生成预览缩略图以及与照片资源相关联的全尺寸图片或视频数据的方法,针对批量预加载大量素材资源进行了优化。
PHImageRequestOptions 从图片管理器中获取静态图片时的选项。
PHVideoRequestOptions 从图片管理器中获取视频时的选项
PHLivePhotoRequestOptions 从图片管理器中获取LivePhoto的选项
PHLivePhoto 实时照片的可显示的表示 - 包括从其捕获之前和之后的时刻的运动和声音的图片

请求更改

  要更改资产或集合,请创建描述您的编辑的更改请求对象,并明确将它们提交到照片库。此架构可让您轻松,安全,高效地在多线程或多个应用和应用扩展对相同资源进行编辑。

说明
PHContentEditingInput 提供有关要编辑的图片,视频或实时照片内容的信息和访问权限的容器
PHContentEditingOutput 您提供编辑的照片,视频或实时照片内容的结果的容器
PHAdjustmentData 对资产的照片,视频或实时照片内容所做的修改的说明,允许您的应用重新构建或恢复之前编辑会话的效果。
PHContentEditingInputRequestOptions 当您请求编辑Photos资源的内容时,影响图片或视频数据投放的一组选项
PHLivePhotoEditingContext 用于修改实时照片的照片,视频和音频内容的编辑会话。
PHFetchResult 从照片提取方法返回的资源或集合的有序列表。
PHLivePhotoFrame 在编辑上下文中为实时照片的单个框架提供图像内容的容器

变化观察

  只要其他应用程式,其他装置或应用程式中其他位置的程式变更资产的内容或中继资料或集合中的资产清单,相片便会显示您的应用程式。这些对象提供有关每次更改之前和之后的对象状态的信息,从而可以轻松更新您的用户界面以进行匹配。

说明
PHPhotoLibraryChangeObserver 您可以实现的协议,以通知照片库中发生的更改
PHChange 照片库中发生的更改的说明
PHObjectChangeDetails 对资产或集合对象中发生的更改的描述
PHFetchResultChangeDetails 对在抓取结果中列出的资产或收集对象集合中发生的更改的说明。

使用资产资源

  一个或多个资产资源对象表示每个Photos资源的基础数据存储。使用这些对象直接处理这些资源 - 例如,备份和恢复资源。

说明
PHAssetResource 与照片库中的照片,视频或实时照片资源相关联的基础数据资源。
PPHAssetCreationRequest 从底层数据资源创建新的Photos资源的请求,用于照片库更改块
PHAssetResourceCreationOptions 影响从底层资源创建新Photos资源的一组选项。
PHAssetResourceManager 提供访问与Photos资源相关联的资源的基础数据存储的方法。
PHAssetResourceRequestOptions 影响您从资产资源管理器请求的基础资产数据交付的一组选项。

媒体类型和子类型

  与PHAsset和PHContentEditingInput类一起使用的常量,用于标识或请求不同类型的资产。

说明
PHAssetMediaType 标识资产的常规类型(例如图片或视频)的常量。
PHAssetMediaSubtype 标识资产媒体的特定变体的常数,例如全景图或截屏照片和时间流逝或高帧速率视频。

下一篇 树莓派入门

Content