问题标签 [phasset]

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 投票
0 回答
154 浏览

ios - 适用于 iOS8 的 PHAssetMediaSubtypePhotoScreenshot

我认为标题使其不言自明

由于不推荐使用 ALAssets 库,因此我正在尝试从我不久前开始的项目中转换所有内容。照片框架有一个用于PHAssetMediaSubtype的 typedef 枚举,它可以很容易地识别哪些照片是使用设备拍摄的屏幕截图:PHAssetMediaSubtypePhotoScreenshot。但是,对该功能最糟糕的警告是,在该枚举中列出的所有常量中,该特定实例是唯一与 iOS8 不兼容的实例。

长话短说-有人可以引导我找到将其标识为屏幕截图的图片的元数据或字典信息的价值吗?最好保持照片框架或已经实现的不需要额外框架或导入的东西。仅供参考,不寻找第 3 方选项作为答案。请把它放在家里,我很肯定我忽略了一些简单的东西

0 投票
4 回答
15802 浏览

ios - PHAsset 获取原始文件名

我想知道是否有任何方法可以使用 PHAsset 获取原始文件名?

我使用以下代码提取文件信息。

但是,它不会返回原始名称,而是返回格式为“img_123”的名称,我刚刚检查了苹果官方文档。引入了一个新的类和在 iOS 9+ 中可用PHAssetResource 的属性。originalFilename问题是我使用了基于 Photos 框架的图像选择器库CTAssetsPickerController ;它返回拾取的图像作为PHAsset对象。PS。我正在寻找与 iOS 8 兼容的解决方案 :)。谢谢!

0 投票
1 回答
1022 浏览

swift - 使用照片框架将带有名称的图像保存到相册

我正在尝试使用此答案https://stackoverflow.com/a/27660747/2594560将图像保存到图库相册。

但我也想存储图像名称,以唯一标识这些图像。此外,这些图像将在检索时使用。我是照片框架的新手。请指导我

任何帮助将不胜感激。提前致谢

0 投票
1 回答
130 浏览

ios - 照片框架工作异常。

我正在使用照片框架从相机胶卷中选择照片。从网格中选择资产后,我使用 PHImageManager 访问每个选定的图像,然后将这些图像存储在数组中以显示在我的集合视图中。

我正在使用这段代码来实现:-

现在我的数组“arr_fullSizeImages”包含提取的图像,其随机顺序与我在拾取资产时选择的方式不同。例如,如果我从相机胶卷中选择了 5 张图像,那么有时在相机胶卷索引 3 处的选定图像会保存在 arr_fullSizeImages 中的索引 5 上。我无法追踪这种行为的原因。请确定错误的来源以及如何解决此错误。

谢谢。

0 投票
1 回答
1580 浏览

ios - PHChange changeDetailsForFetchResult - 总是返回 nil

我正在使用PHPhotoLibrary检索几个这样的照片集:


该方法analyzeCollectionInternal保存PHAssetCollections供以后使用并显示集合的内容。


此外,我向照片库注册了一个更改观察者,如下所示:


充当观察者的类实现了PHPhotoLibraryChangeObserver这样的协议:


现在,如果我打开照片应用程序以从“所有照片”-SmartAlbum 添加/更改/删除照片,则会调用更改观察者,但调用

仅返回nil,即使 PHChange 对象包含insertedObjectIDsand changedObjectIDs。使用 iDevice 的 Home- 和 Lock-Button 截屏时也是如此。

0 投票
3 回答
6065 浏览

ios - 从 Live Photo 中提取视频部分

有人知道如何从实时照片中提取视频部分吗?我正在开发一个将 Live Photo 转换为 GIF 的应用程序,第一步是从 Live Photo 中获取视频文件。看起来应该是可能的,因为如果您将手机插入 Mac,您可以看到单独的图像和视频文件。我在提取过程中遇到了一堵砖墙,我尝试了很多方法来做到这一点,但都失败了。

我做的第一件事是通过执行以下操作为我认为是 Live Photo 的视频部分的内容获取 PHAsset:

要将 PHAsset 转换为 AVAsset,我尝试过:

我认为这不起作用,因为带有 duration.value 的调试打印为 0。我也尝试过不添加“.mov”,但它仍然不起作用。

我也试过:

并且 debugPrint(avAsset) 打印 nil 所以它不起作用。

我有点担心他们可能无法做到这一点,我好像在绕圈子,因为我得到的 PHAsset 似乎仍然是一张实时照片,而不是真正的视频。

0 投票
1 回答
1006 浏览

ios - PHAsset fetch 将 50% 的集合返回为 nil

当我把 aPHAssetCollection交给PHAsset.fetchAssetsInAssetCollection:options我时,我会得到一个 s 的集合PHAsset。对于每UIImage一个回馈给我,也有一个 nil 值回馈给我。

以下是我的cellForItemAtIndexPath:indexPath方法。

如果我不放零支票

然后 UICollectionView 什么都不渲染。一旦我添加了 nil 检查,集合视图就会开始渲染照片库资产集合中的图像。

为什么返回给我的 nil 数量总是与UIImage对象数量相同?我的请求中有什么我搞砸的吗?

这是我print上面调用的输出。

更新:

似乎这发生在我返回的每个 PHAssetCollection 中。

更新 2:

这是我试图复制的 WWDC 示例中的部分内容。我确实注意到它确实的一件事,但我不是,它是标记单元格,以防止在重复使用时覆盖它。

0 投票
2 回答
3597 浏览

ios - PHAsset + AFNetworking。无法在真机上上传文件到服务器

目前我正在使用以下代码将文件上传到服务器

/*getAassetUrl */

这种方法在模拟器上有效,但在真实设备上失败:空文件上传到服务器很可能是由于无法从本地存储读取。日志显示通知

注意:沙盒:MyApp(213) 拒绝文件读取数据 /private/var/mobile/Media/DCIM/101APPLE/IMG_1570.PNG

我相信这个注释意味着应用程序无法通过指定路径访问文件。此外,我尝试了另一种上传文件的方法,方法是附加从请求 PHAsset 数据返回的 NSData 。但是这种方法在大型媒体文件的情况下是不可用的。因为整个文件被加载到内存中。

有什么想法吗?

0 投票
1 回答
225 浏览

ios - 是否可以使用 Obj-C 中的谓词按名称检索照片?

PHAsset我想知道是否可以使用带有库的 Obj-C 中的谓词从相册中检索照片?

我问这个问题是因为我不想浏览整个相册来只检索一张照片。

谢谢。

0 投票
3 回答
5670 浏览

ios - 高内存使用循环通过 PHAsset 并调用 requestImageForAsset

我正在使用图像选择器库来允许用户从他们的照片库中选择许多图像。它们作为一个数组返回PHAssets。然后,我想将所有内容转换PHAssetsUIImages并将它们写入应用程序的存储空间。

目前,我正在遍历所有资产并requestImageForAsset同步调用。我的问题是,当这个循环运行时,内存使用量会出现非常高的峰值(30 张图像,它会达到 130MB)。我想防止这种情况。

这是我的代码:

根据日志,我看到首先调用所有“开始请求图像 x”,然后调用所有完成块(“完成请求图像 x”)。我认为这可能会导致内存问题。确保在释放这些资源并移动到下一次迭代之前调用每次迭代的完成块可能会减少内存密集型。我怎样才能做到这一点?