问题标签 [photosframework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
522 浏览

ios - iPhone:照片框架:如何仅获取由我的应用程序创建的那些相册/图像,而不是由其他人创建的?

我正在创建一个应用程序,如照片应用程序。我的应用程序创建相册并捕获图像并将它们保存在照片应用程序的相册中。为此,我正在使用照片框架。当我获取专辑时,它会为我提供由我的应用程序以及其他应用程序创建的专辑。所以我只想要那些由我的应用程序创建的专辑/图像,而不是由其他应用程序创建的。

0 投票
0 回答
604 浏览

ios - 我将如何正确使用 iOS 8 中的照片框架和 UICollectionView,保留图像纵横比,就像在 Messages.app 中一样?

我想创建一个类似于 Apple 在 Messages.app 中的外观,您可以在其中拥有图像的水平滑动视图。

在此处输入图像描述

我知道在 iOS 8 中最好的方法是使用新的 Photos 框架,并且可能与水平的UICollectionView.

UICollectionView在我的视图控制器故事板中将我的固定高度固定在一个设定的高度,并从顶部定位,然后viewDidLoad我写:

recentlyAddedFetchResult视图控制器上的实例变量在哪里。

然后,我创建了一个自定义UICollectionViewCell子类,该子类简单地UIImageView将 Auto Layout 固定到单元格的边缘。

UICollectionViewDataSource我拥有的方法中:

但是,我现在明白我必须实施sizeForItem,但我很困惑如何处理。我能想出的最好方法是再次执行上述提取,但图像尺寸较小,因为我只需要该比率,然后基于该比率返回一个尺寸。但是获取是异步的,所以我必须先保存它,然后再返回,对吧?

我尝试如下:

但是控制台只是被这条消息的无限循环淹没:

项目高度必须小于 UICollectionView 的高度减去部分插入顶部和底部值。

但它是。集合视图为 150 高,没有剖面插图。即使我删除了缓存,所以每次它仍然抱怨它时它只会返回 140x140。为什么?如果我把它调低到 70x70 左右,它工作得很好,但我不知道为什么。

最重要的是,滚动器中的前两个图像很少在第一次加载时出现,只有在我滚动时才会出现。

我在这里做错了什么?关于新照片框架的教程很少,所以尽管我尽了最大的努力,我还是无法弄清楚我做错了什么。

0 投票
1 回答
217 浏览

ios - PHPhotos 和核心数据。PHObject 使用什么 NSManaged 对象类型?

我正在尝试使用 Swift 构建一个使用新的 PHPhotos API 和核心数据的应用程序。我想要做的是捕捉或从库中选择一张照片。将其保存到自定义相册和我的核心数据数据库。

我都单独工作,但我将图像保存到数据库中,使用 NSData 作为数据类型似乎是多余的。给我留下两次相同的图像,一张在相册中,一张在数据库中。我想要做的是将图像的引用保存到数据库,然后使用该引用检索它。

然后使用 Change Observer 处理从我的相册到数据库的更新或更改,反之亦然。

现在,我不确定要为 PHObject 使用什么数据类型,因为我在使用 NSData 处理图像数据时遇到了错误。

这是我在 Core Data 中使用的类。

导入基础导入CoreData

类 MyEntry: NSManagedObject {

}

任何建议将不胜感激。谢谢你。

0 投票
1 回答
1756 浏览

ios - 为什么 PHAsset fetchAssetsWithOptions 不返回所有资产?

我的照片流中有 75 张照片,相机胶卷中有 1 张照片(不在我的照片流中)。所以我总共有 76 张照片。但以下代码仅返回 51 张照片:

我知道:

如果在 iOS 8.1 或之后链接的应用调用此方法,则结果不包括从 iTunes 同步到设备的照片或存储在 iCloud 共享照片流中的照片。

但上面的照片都不是来自 iCloud 共享照片流。

0 投票
1 回答
3137 浏览

ios - NSCocoaErrorDomain Code=-1 删除用户照片库中的照片时

嗨,我正在使用 ios 8.0 的新照片框架。我正在尝试删除一组照片,这是代码:

我在大约 8 台设备上进行了测试。其中 6 人成功删除了选定的照片,其中 2 人返回并显示错误: Error Domain=NSCocoaErrorDomain Code=-1 "The operation couldn’t be completed. (Cocoa error -1.)"我测试的两个设备是 6+ 和 5s。我无法弄清楚它是什么错误,并且想知道有人可以帮助我解决这个问题。谢谢!

0 投票
1 回答
481 浏览

swift - 照片框架:RequestImageForAsset 方法中的 contentMode

在照片框架中,我正在尝试查看使用 PHImageManager 中的 RequestImageFor Asset 方法的教程。

这是一段代码:

我在第二行遇到了编译器问题:“找不到成员 'AspectFill'

我不明白为什么在 PHImageContentMode 的定义中:

谢谢你的帮助

0 投票
1 回答
1039 浏览

ios8 - 我什么时候可以使用照片框架和 iCloud 照片库?

我想为我的用户提供一个照片选择器,它显示他们所有的图像,类似于照片应用程序。目前我可以使用两个框架,旧的资产库和新的照片库框架。有什么建议我应该如何在这两者之间进行选择?

该文档指出:

在 iOS 8.0 及更高版本中,使用 Photos 框架而不是 Assets Library 框架。Photos 框架为使用用户的照片库提供了更多功能和更好的性能。

但正如我的测试所示,在某些情况下,用户尚未启用 iCloud 照片库,因此我无法通过新框架检索他们的任何照片。如何检测是否启用了 iCloud 照片库?如果启用,旧框架或多或少仍然有效,但似乎并没有显示每张照片。它显示了哪些照片?我要继续使用它吗?我找不到任何关于此的文档。

0 投票
1 回答
5475 浏览

ios - 使用照片框架从画廊上传视频

使用照片框架从画廊上传视频的最佳方式是什么?在我使用 ALAssetRepresentation 和下一个方法之前:

这允许上传文件而无需先将其复制到应用临时目录。在照片框架中看不到任何替代品。唯一的方法似乎是使用 AVAssetExportSession -> 导出到本地目录 -> 上传,但这需要额外的存储空间(如果视频太大,可能会出现问题)

0 投票
1 回答
1253 浏览

ios8 - iOS 8 照片库 - 使用 PHAssetChangeRequest 添加资产时出错

尝试使用[PHAssetChangeRequest creationReqeustForAssetFromImageAtFileURL:]. 我正在尝试通过首先获取第一张照片的路径名来从照片库中复制另一张照片。

该功能在模拟器上运行时按预期工作,但在实际设备上运行时失败。模拟器和设备都运行 iOS 8.3。iPad 设置为在 iCloud 上存储照片,模拟器不是。

我的代码片段

来自currentImagePath[PHImageManager requesstImageDataForAsset:]提供我要复制的照片的资产。在实际 iPad 上运行时,路径如下所示:

当我在模拟器中运行它时,它看起来像这样:

在以下创建请求时出现错误:

错误信息

无法从文件创建数据 Error Domain=NSCocoaErrorDomain Code=257 “操作无法完成。(Cocoa 错误 257。)” UserInfo=0x17046ac40 {NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0042.JPG, NSUnderlyingError=0x1702480a0 "操作无法完成。操作不允许"}

有趣的是,如果我将 UIImage* 与 function 一起使用,则创建请求在所有平台上都会成功[PHAssetChangeRequest creationReqeustForAssetFromImage:]

如果有人能解释发生了什么,我将不胜感激。是否与将照片存储在云端有关?我曾尝试为 iPad 上的照片关闭 iCloud,但我仍然得到相同的行为。

0 投票
1 回答
645 浏览

ios - 使用具有固定宽度和可变高度的 PHImageManager 时的低分辨率图像

我正在使用Photos Framework来请求图像按照用户定义的参数显示在 UIImageView 中。

我基本上使用这段代码:

用户可以选择“适合宽度”或“适合高度”选项。在“适合宽度”中,我使用:

在“适合高度”中,我使用:

从 UIImageView 的尺寸动态获取的位置width和位置。height我的想法是,通过PHImageManagerMaximumSize在非固定尺寸和PHImageContentMode.AspectFill中使用contentMode,我将获得可能适合我的 UIImageView 的最大图像。

“适合宽度”选项:

“适合高度”选项:

问题发生在第一种情况下:当使用“fit-width”选项时,用户看到的是一个非常低分辨率的图像。

我做错了什么还是PHImageManager有问题?