问题标签 [photokit]
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.
ios - 从实用程序调度队列使用 PhotoKit 的问题
我正在尝试在我的应用程序在前台运行时对资产进行后台处理,但我一直遇到主线程性能不佳和优先级反转问题的问题。我正在使用后台 QOS_UTILITY dispatch_async 调用。似乎即使我这样做了,它最终还是在调用 requestImageDataForAsset 期间回调到主线程中。
它看起来与底层 PhotoKit 库中的核心数据有关。看下面的主线程,所有的工作都应该在后台完成。每个地方都会调用“照片”。我在实用程序线程上放置了一个 dispatch_async。注意线程是如何从 QOS.UTILITY 反弹到 QOS.DEFAULT 然后到主队列的。
在来自 requestImageDataForAsset 的回调中,在制作完下面的清单后,我将它放回了回调中所需的队列中(第 19 行),但是 UI 性能仍然不好,因为主线程正在做太多的工作或等待。这是我最好的选择还是我可以做些什么来让 photokit 在我的后台线程上处理?
caching - iCloud 照片库 - 最初小于请求大小的图像的本地缓存
我们有点困惑设备缓存是如何工作的,以及它是如何工作的。原始分辨率小于请求中指定的图像似乎根本没有被缓存,每次我们调用 RequestImageForAsset 看起来图像总是从云中提取。当它发生时,它还显示了一个我们没有看到它记录的有趣行为。虽然 RequestImageForAsset 回调没有返回错误,但预期生成的 UIImage 为 nil。获取图像的唯一方法是使用更小的尺寸再次请求它。
显示此行为的照片显示在“照片应用程序”中,并带有一个白点。只有在通过双击强制放大后,该点才会消失,并且只有在那一刻之后,我们才能通过 RequestImageForAsset 正确请求它。
欢迎任何帮助
欢呼曼努埃尔
photokit - PhotoKit:PHFetchOptions 中的 includeAllBurstAssets 不起作用
我正在尝试使用 PHFetchOptions 的 includeAllBurstAssets。在我的相机胶卷中,大约有 5 个连拍资产(每个都有大约 10 张照片)。
要枚举相机胶卷中的资产,我正在执行以下操作:
无论如何,如果我将 includeAllBurstAssets 属性设置为 NO 或 YES,我会得到完全相同的资产计数。如果 includeAllBurstAssets 设置为 YES,我预计这个数字会更高。这是一个错误还是我以错误的方式解释了 includeAllBurstAssets。
ios - PHAsset 的 iOS 位置:准确率始终为 0
我正在尝试使用 PhotoKit 从用户的照片库中提取位置信息。麻烦的是,所有 CLLocation 对象的水平精度为 0...
无论是 PHAssetCollection.approximateLocation.horizontalAccuracy 还是 PHAsset.location.horizontalAccuracy 都没有区别。
这些信息在我的用例中很重要,而且我知道在某些情况下准确度绝对是可怕的(误差半径超过 500 米)。
任何见解表示赞赏!
ios - 仅从资产集合类型 PHAssetCollectionTypeSmartAlbum 中获取 PHAssetMediaTypeImage 类型的照片
我正在使用 Photos 框架来获取 iOS8 中的专辑列表。我可以使用
这给了我所有智能专辑的列表,包括视频。如何从此列表中过滤掉视频。我只需要图像。
帮助将不胜感激。谢谢。
ios - 设置 PHAssetChangeRequest 的位置属性不会在图像元数据中创建 GPS 部分
当拍摄照片(iOS 8.1)并调用 didFinishPickingMediaWithInfo 时,我正在尝试使用 PhotoKit 将 GPS 数据重新添加到元数据中。
这是我正在使用的代码:
该代码获取图像并将其移动到相册。这部分有效。照片最终出现在正确的相册中。
问题是即使位置属性设置正确,元数据中也不存在 GPS 数据。我知道位置数据是有效的。
这不应该工作吗?是否有替代方法来获得所需的结果?我并不关心所有其他元数据,只关心 GPS 坐标。
ios - 如何使用 Photo Kit 获取专辑海报图片?
使用 Assets Library 时,您可以从 ALAssetsGroup 获取专辑的海报图片。使用照片框架(照片套件)时如何实现相同的效果?
ios - 将元数据应用于图像会导致 performChanges 请求失败
我正在使用 PhotoKit 来编辑照片,我需要保留原始照片中的元数据。为此,我保存元数据,然后将其提供options
给CGImageDestinationAddImage
. 我能够完成它并将其成功写入磁盘,但是当我调用performChanges
提交资产编辑时,它失败了。如果我改为提供nil
它options
会成功。这里出了什么问题?
错误是:Error Domain=NSCocoaErrorDomain Code=-1 "The operation couldn’t be completed. (Cocoa error -1.)
cocoa - 如何知道 PHAssetCollection 是否是最近删除的集合?
最近添加的集合有一个子类型:PHAssetCollectionSubtypeSmartAlbumRecentlyAdded
. 但是,没有
assetCollectionSubtype
可以识别“最近删除”的集合。
这是对我的“最近删除”集合的描述:
(iOS 8.1.3): DF876BFD-...-C97F4628467C/L0/040 Recently Deleted assetCollectionType=2/1000000201
这表明它是 type PHAssetCollectionTypeSmartAlbum
。但是 subtype 到底是1000000201
什么?
201
应该PHAssetCollectionSubtypeSmartAlbumPanoramas
根据文档。
1000000201
可以相信这个神奇的数字永远不会改变吗?可能不是。
但是,您可以通过以下方式检索最近删除的集合:
这张特殊的智能相册有一个主要区别:PHAsset
s 不能(再次)删除,因为这是垃圾箱。因此,必须知道是否应该向用户显示删除选项。
有人有想法吗?
ios - 将图像保存在 url 时出现 PHPhotoLibrary 错误
我在由PHContentEditingOutput
. 当我像这样加载数据UIImage
并保存它时 - 它可以工作。
但是当我尝试使用 url 方法时它失败了:
错误:
Error Domain=NSCocoaErrorDomain Code=-1 “操作无法完成。(Cocoa 错误 -1。)”
更新:
当我尝试保存修改时出现同样的错误。
该方法适用于视频 ( creationRequestForAssetFromVideoAtFileURL:
),但不适用于图像。什么地方出了错?