问题标签 [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 投票
6 回答
16205 浏览

ios - 将 PHAsset(视频)同步转换为 AVAsset

我需要使用 AVAsset 对象,以便使用 AVPlayer 和 AVPlayerLayer 播放它。我开始使用 Photos 框架,因为 AssetsLibrary 已被弃用。现在我有一个 PHAsset 对象数组,我需要将它们转换为 AVAsset。我尝试通过 PHFetchResult 枚举并使用 PHAsset 的本地化描述分配一个新的 AVAsset,但是当我播放它时它似乎没有显示任何视频。

我假设本地化描述不是视频的绝对 url。

我还偶然发现了 PHImageManager 和 requestAVAssetForVideo,但是,当涉及到视频时,选项参数没有 isSynchrounous 属性,图像选项参数就是这种情况。

有同步的方法吗?

谢谢。

0 投票
1 回答
1022 浏览

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

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

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

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

0 投票
1 回答
130 浏览

ios - 照片框架工作异常。

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

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

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

谢谢。

0 投票
1 回答
565 浏览

ios - 你如何在运行时#include 框架

我在 App Store 中有一个应用程序,其支持的最低版本是 iOS 7.1。

对于下一个版本,我对其进行了增强以使用 iOS 8 中引入的 Photos 框架。

在应用程序的下一个版本的代码中,我确保如果它在 iOS 7 设备上运行,新功能是隐藏的。

但是,当我尝试在我的 iOS 7.1 测试设备上运行该应用程序时,它失败了,因为我在许多类中包含了 Photos 框架,使用:

#import <Photos/Photos.h>

我在 Xcode 中收到的错误是:

“dyld:库未加载:/System/Library/Frameworks/Photos.framework/Photos 引用自:/var/mobile/Applications/2CA13C9B-EABC-47C3-A198-A7C703EACD59/ABCapp.app/ABCapp 原因:找不到图像”

有没有办法在运行时而不是编译时执行此操作以确保我仍然可以支持 iOS 7?

谢谢。

0 投票
0 回答
1530 浏览

ios - 如何从 iOS SDk 的图库中找到类似的图像?

我正在开发一个 iOS 应用程序,该应用程序必须从图库中找到类似的图像。我解决了问题并找到了使用以下任何一种方法来获取精确的重复图像- :

1.图像哈希

2. 图像数据

[ UIImagePNGRepresentation( uiImage1 ) isEqualToData:UIImagePNGRepresentation( uiImage2 ) ];

要求 :

  1. 两种方法都适用于精确的重复图像,但我们需要找到相似的图像,比如大约 90% 的相似度。

  2. 由于 HDR 和普通图像的哈希值和数据发生变化,因此为了将一键的普通图像和 HDR 都识别为重复图像,对于上述两种方法,它们被视为不同的图像。

查找 RGB 并比较图像:

我有一个想法,即找到图像的 RGB 值并进行比较,它们之间的相似度为 90%,但这种方法似乎更耗时,因为我们必须逐个像素地比较所有图像并比较画廊中的数千张图像一项乏味的任务。

那么对于支持照片框架的应用程序,什么应该是从图库中找到重复图像的有效方法,包括正常和 HDR 图像以及具有相似性的图像。

0 投票
1 回答
1663 浏览

ios - 以正常 FPS 保存慢动作视频

我有一个AVMutableComposition由 Slo-Mo 视频制作的视频。在 AVPlayer 中,它以正确的速度播放,因为我已经从照片中请求它使用PHVideoRequestOptions.Original不包括视频的 Slo-Mo 部分。但是,导出可变合成会以完整的 FPS 导出它,如果 FPS 太高,这会导致 Slo-Mo 回来。

如何导出帧率为 30 的视频?是否有不包含慢动作或其他方式的特定文件类型?

我发现了两个(坏的)解决方案:

  1. 设置AVAssetExportSessionAVAssetExportPresetMediumQuality或更低会导致帧速率下降,但质量也会变差。不好。
  2. 设置AVAssetExportSession.videoComposition为具有 frameDuration 的视频合成,CMTimeMake(1, 30)但是使用它导出视频需要很长时间,这也不好。我不知道是什么原因导致它需要这么长时间。
0 投票
2 回答
1349 浏览

ios - fetchAssetCollectionsWithType 仅检索视频

我正在努力在 iOS 中制作一个自定义图库视图,因为我正在使用照片框架,到目前为止效果很好,但我无法让它工作的一件事是获取结果以仅返回 VIDEOS

我试过了, let result = PHAssetCollection.fetchAssetCollectionsWithType(.Moment, subtype: .SmartAlbumVideos, options: nil) 但它仍在检索图像我想知道语法是否错误

谢谢您的帮助

0 投票
1 回答
179 浏览

ios - 使用 vImageHistogramCalculation 计算图像直方图的问题

vImageHistogramCalculation在我当前的应用程序中使用了计算图像的直方图,在某些情况下我得到了EXC_BAD_ACCESS 。我经历了如下案例 -

  1. 我使用了PNG格式的 iPhone 相机胶卷中的图像,并在上面的代码中手动放入 bundle 中,它工作正常。

  2. 我对 iPhone 相机胶卷中JPG格式的图像使用了相同的代码,然后出现 EXC_BAD_ACCESS 错误。

  3. 我尝试使用照片框架从相机胶卷中获取图像,然后传递给相同的代码,然后我也收到 EXC_BAD_ACCESS 错误。

我真正需要的是找到iPhone 相机胶卷所有图像的直方图。所以我无法找出为什么上面的代码对一种图像格式工作正常而对另一种图像格式失败。还有其他原因导致崩溃吗?

编辑 1-我得出的不是图像格式,它对于某些 JPG 图像也可以正常工作,但在某些情况下仍然会崩溃。我应该如何弄清楚?

参考

https://developer.apple.com/library/mac/documentation/Performance/Reference/vImage_histogram/#//apple_ref/c/func/vImageHistogramCalculation_ARGBFFFF

使用 vImageHistogramCalculation 计算图像的直方图

0 投票
1 回答
556 浏览

ios - 如何将 PHImageManager 与 UICollectionView 一起使用

我是 iOS 开发的新手,很难理解 PHImageManager 的概念。我在某处读到它可以返回缩略图大小的图像和真实大小的图像,但我无法弄清楚如何。

在我的应用程序中,我显示了一个包含相机胶卷图像的集合视图。如果用户点击其中一个图像(单元格),则该图像将传递给另一个 ViewController 以进行更大尺寸的查看。我通过使用 segue 获取选定单元格的imageview.image属性并将其推UIImage送到下一个 ViewController 来实现这一点。

我的问题是:如何配置图像管理器以获取集合视图的缩略图大小图像并在选择图像时加载图像的实际大小?现在我正在使用targetSize40x40 的图像将图像加载到集合视图中,但是这样在下一个 ViewController 中打开时它们会失去分辨率。但是,如果我将图像的实际大小用于集合视图,则加载它需要很长时间。谁能给我一个解决这个问题的方法?

另外:我读了一些关于 PHCachingImageManager 的东西......它与解决我的问题有什么关系吗?

0 投票
5 回答
7537 浏览

ios - 照片框架崩溃:“不允许此应用程序访问照片数据。”

如果未授予照片访问权限并且请求权限的对象即将解除分配,则应用程序崩溃。

Apple 的示例代码(用于照片框架)也崩溃了。

我的应用程序因以下堆栈跟踪而崩溃:

任何指针将不胜感激。