【问题标题】:Find the list of photos inside a device查找设备内的照片列表
【发布时间】:2023-04-03 07:32:01
【问题描述】:

对于我正在开发的一个小程序,我需要找到设备内的图像和照片列表,在这种情况下是 iPhone 模拟器(我保存了一些从互联网上获取的图像)。我现在在 Android 中存在“android.database”API 中的“光标”。 Objective C 中是否有类似的东西? 我发现本教程很有趣:How I get all the images from a perticular folder(iPhone)?,但在这种情况下,用户手动传递路径。就我而言,我不知道图像的路径,所以我需要使用在路径内自动搜索的东西。 我还看到,对于这个问题,AssetsLibrary 框架可以提供帮助,但我是 Objective C 编程的新手,我不确定它是否是我需要的。

感谢您的每一个帮助。

【问题讨论】:

  • 如果您需要从设备访问照片,您必须使用 AssetsLibrary。沙盒不允许您访问应用程序文件夹之外的任何内容,因此没有“包含设备上所有照片的文件夹的路径”之类的东西 - 因为应用程序无论如何都无法看到该文件夹​​。
  • 我需要访问设备中的照片信息。这些照片是用相机拍摄的或从互联网上下载的。我需要找到它们的路径、名称、宽度和高度。我只需阅读这些信息。

标签: ios cocoa-touch assetslibrary


【解决方案1】:

我自己使用了这个框架,它被证明非常有用。使用 AssetsLibrary 框架,您可以从 info 字典中获取 referenceURL 并获取资产。像这样的:

NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];

__block NSString *fileName = nil;

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL resultBlock:^(ALAsset *asset)  
{
    fileName = asset.defaultRepresentation.fileName;
} 
failureBlock:nil];

【讨论】:

  • 谢谢believe_anky,它会在设备的路径中自动搜索吗?我现在正在尝试使用它。我已经声明了 ALAssetLibrary,我正在尝试使用 enumerateGroupsWithTypes 枚举它。
  • 是的,它会自动打开您画廊中的文件夹。
【解决方案2】:

假设您对由 iOS 照片应用程序管理的照片感兴趣,AssetsLibrary 框架将是您的最佳选择。

特别是ALAssetsLibrary 应该是一个很好的起点,看看它是否能做你想做的事。

Apple 经常在类引用中包含对示例项目的引用,您可以使用这些引用来查看该类的实际运行情况,例如本例中的 MyImagePicker 项目。

【讨论】:

  • 感谢您的信息。我会看到更好的 ALAssetsLibrary 和 MyImagePicker。我需要找到一些关于它的商品教程。现在我搜索...
猜你喜欢
  • 1970-01-01
  • 2014-05-31
  • 2011-11-11
  • 2012-04-10
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
相关资源
最近更新 更多