iOS照片框架

2024-04-19

我想检索所有照片local设备上的相册。基本上设备上的所有照片 本地标识符列表是否唯一? 使用照片框架的最佳方法是什么?

我的问题不重复,因为另一个问题还讨论了云资产和设备上没有的资产。当检索图像的实际数据时,它会在尝试获取同步时返回空数据。


我想检索本地所有相册中的所有照片 设备。基本上设备上的所有照片

编辑: fetchOptions.includeAssetSourceTypes = .typeUserLibrary见下面的代码

我就是这样做的:

var fetchResult: PHFetchResult<PHAsset>!

...

let fetchOptions = PHFetchOptions()     
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
fetchOptions.includeAssetSourceTypes = .typeUserLibrary

fetchResult = PHAsset.fetchAssets(with: fetchOptions)

然后,如果我想将其用作图像或缩略图(如果您希望将图像用作数据,请使用此let imageData: NSData = UIImagePNGRepresentation(myImage)) I use:

/* 
 * From an asset to a UIImage, also can be used for thumbnail (if you change the :targetSize:)
 */
func getAsset(_ asset: PHAsset) -> UIImage {

    //var thumbnail = UIImage()
    var imageData = Data()

    let options = PHImageRequestOptions()
    options.isSynchronous = true
    options.deliveryMode = .opportunistic
    options.resizeMode = .fast
    options.isNetworkAccessAllowed = false

    PHImageManager.default().requestImage(for: asset, targetSize: view.frame.size, contentMode: .aspectFill, options: options) { image, info in

      //thumbnail = image!
        imageData: NSData = UIImagePNGRepresentation(image)
    }
    //You can check if the UIImage is nil. If it is nil is an iCloud image
    //return thumbnail
    return imageData
}

您可能会根据您的需要自定义上述代码或添加更多功能!

上面的代码是使用Swift 3.1和Xcode 8.3.1编写和测试的

根据苹果文档

是否允许网络访问一个布尔值,指定照片是否可以从 iCloud 下载请求的图像。如果为 true,并且请求的图像未存储在本地设备上,“照片”将从 iCloud 下载图像。要获得下载进度的通知,请使用 ProgressHandler 属性提供一个块,供 Photos 在下载图像时定期调用。如果为 false(默认值),并且图像不在本地设备上,则结果处理程序的信息字典中的 PHImageResultIsInCloudKey 值指示图像不可用,除非您启用网络访问。

使用 getAsset() 方法从资产中检索图像。有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS照片框架 的相关文章

随机推荐

  • 使用 C# 使用 Google OAuth 2.0 登录

    我想允许用户使用登录Gmail 因此 我在 google 上搜索并获得了许多示例 但所有示例都使用 OpenID 而且我检查了 Google 文档 他们已停止 OpenID 的新域注册 从现在开始 开发人员将需要使用 OAuth API 我
  • 如何杀死内核模块中的等待队列?

    我是内核模块的新手 使用等待队列 我阻塞线程 直到缓冲区有数据 使用hrtimer 我定期唤醒队列 现在 问题是即使在我删除内核模块之后 我也可以看到该进程 thread1 仍在运行 我认为问题在于等待队列永远等待并且进程在这里被阻塞 请帮
  • 将n个元素插入到数组末尾的时间复杂度是多少?

    我知道向数组插入一个元素需要一个恒定的时间 让我们说c 我尝试过的 用于插入n个元素time c c c n times nc 我想问是n的大O还是o 1 是的 添加n元素需要 O n 时间 但添加单个项目则不是 O 1 它是摊销的 O 1
  • 如何获取http重定向状态码

    我想记录 301 与 302 但找不到读取 Client Do Get doFollowingRedirects CheckRedirect 中的响应状态代码的方法 我必须自己实施重定向才能实现此目的吗 The http Client ht
  • 如何在 Spark 中引入 Row 中的 schema?

    在 Row Java API 中 有 row schema 但没有 row set StructType schema 我也尝试 RowFactory create objects 但我不知道如何继续 UPDATE 问题是当我修改工人的结构
  • 每秒改变背景颜色

    function change i var doc document getElementById background var color black blue brown green for i 0 i
  • 如何使用 android RecyclerView 创建自动调整网格布局

    我想使用 RecyclerView 创建自动调整列 如上图网格布局 At last I have done it using FlexboxLayout 渐变导入 编译 com google android flexbox 0 3 1 pu
  • 如何从 JavaScript 中的日期对象获取上周的第一天?

    给定一个日期对象 如何获取上周的第一天 This Datejs库 http groups google com group datejs browse thread thread d1a5323a95c48525看起来它可以相对容易地完成这
  • 自定义 Flask-Admin 表单,其中一些选择字段选项根据另一个选择字段设置

    我正在尝试使用 Flask Admin 为下面所示的模型 Matriline 创建一个创建 编辑表单 该模型有一个字符串字段 name 和一个字段 pod id 该字段具有对另一个模型 Pod 的外键约束 该模型本身也有一个外键字段氏族模型
  • 如何忽略 OpenCV python 中的内部黑色轮廓?

    在上图中 我只需要以下轮廓 8 7 0 2 4 里面每隔一个轮廓都是黑色的空盒子 有没有办法使用 cv2 RETR TREE 自动提取此类轮廓 cv2 RETR EXTERNAL 将忽略我实际需要的 2 和 4 gt gt heirarch
  • 使用环境变量在 AWS Elastic Beanstalk 上通过 django 运行 celery

    我想使用我的 Django 应用程序在 AWS Elastic Beanstalk 上运行 celery 我遵循了 yellowcap 的这个很棒的答案 如何使用 AWS Elastic Beanstalk 运行工作线程 https sta
  • 如何在 R 中使用“<<-”(范围分配)?

    我刚刚读完R 介绍中的范围界定 http cran r project org doc manuals R intro html Scope 并且我很好奇 lt lt 任务 该手册展示了一个 非常有趣的 示例 lt lt 我觉得我明白了 我
  • 模拟器未运行

    在我将硬盘更换为另一个 MotherBoard i5 3GHz 处理器而未重新安装操作系统后 我的 AVD 模拟器无法运行 操作系统 Ubuntu 10 10 我的模拟器没有通过 Eclipse 运行 当我单击 Run As Android
  • Web 测试记录器不允许我记录测试 IE11 windows 7

    我正在尝试使用以下方法记录 Web 性能测试网络测试记录器 12 00VS 2013 自带的插件 This is what I get when the toolbar opens 如您所见 按钮呈灰色且禁用 我已关注这个解决办法 http
  • Primefaces FileUpload 不适用于 PrettyFaces 和 Spring Boot

    我将 Spring Boot 1 5 2 RELEASE 与 JSF 2 2 14 Primefaces 6 1 和 PrettyFaces 3 4 1 Final 一起使用 我的pom文件如下
  • HTML
    标签导致 Rails 表单提交 GET 而不是 POST 请求

    我有一个可以正常工作的表单 直到我添加样式标签 我正在使用 twitter bootstrap 该应用程序是 Rails 3 1 我使用的是 Mac 这是一个可以正常工作的表格 没有任何问题 div class alert message
  • Android 数据库 - 无法执行此操作,因为连接池已关闭

    我对 android 数据库和游标有奇怪的问题 有时 很少 发生 我收到客户的崩溃报告 很难找出它崩溃的原因 因为我有大约 150 000 个活跃用户 可能每周大约有 1 个报告 所以这确实是一些小错误 这是例外 STACK TRACE j
  • 找不到 db4o 数据库文件

    您好 我正在编写一个简单的 CRUDE 应用程序 该应用程序使用 JSF 和 DB4O 完美运行 我可以正常添加并列出所有实体 不会出现错误 我使用此代码来保存实体 bd Db4oEmbedded openFile configuratio
  • 如何在传递一些上下文时在expressjs中重定向?

    我正在使用express 在node js 中制作一个网络应用程序 这是我所拥有的内容的简化 var express require express var jade require jade var http require http v
  • iOS照片框架

    我想检索所有照片local设备上的相册 基本上设备上的所有照片 本地标识符列表是否唯一 使用照片框架的最佳方法是什么 我的问题不重复 因为另一个问题还讨论了云资产和设备上没有的资产 当检索图像的实际数据时 它会在尝试获取同步时返回空数据 我