如何识别从相机胶卷中选择的图像?

时间:2015-10-06 01:16:51

标签: ios swift

我想创建一个应用程序,用户(1)从相机胶卷中选择任意数量的照片,然后(2)随机选择(并显示)其中一张照片。我知道如何:

  • 从相机胶卷中选择(并显示)照片。 (但我不知道什么信息可以让我重新选择图像,就像桌面世界中的图像路径和名称。这是我的问题的核心。
  • 创建一个数组并追加新项目。 (我假设我可以附加一个标识单张照片的字符串或对象。)
  • 从数组中随机选择一个项目
  • 显示图片

我确实看到this question,但已经好几年了。

2 个答案:

答案 0 :(得分:1)

正如您所说,您知道如何从相机胶卷中选择(和显示)照片,以便在您选择以下委托方法时进行调用。

optional func imagePickerController(_ picker: UIImagePickerController,
      didFinishPickingMediaWithInfo info: [String : AnyObject])

其中info参数是字典。 信息词典有以下键

let UIImagePickerControllerMediaType: String
let UIImagePickerControllerOriginalImage: String
let UIImagePickerControllerEditedImage: String
let UIImagePickerControllerCropRect: String
let UIImagePickerControllerMediaURL: String
let UIImagePickerControllerReferenceURL: String
let UIImagePickerControllerMediaMetadata: String

您可以检查路径的 UIImagePickerControllerMediaURL 。 如果您需要更多信息,可以考虑使用Assets图书馆框架,其中包含有关Assest的更多信息(包括照片)。

答案 1 :(得分:0)

根据我通过UIImagePickerViewController使用相机胶卷的经验,您收到的是将图片复制到应用程序的沙盒后的图片网址(我相信它已经在" tmp"文件夹,但它可能是其他的东西)。

因此,在用户选择照片后,您可以存储这些URL以便稍后检索图像。如果您需要在单次运行应用程序之后保留这些图像,则应考虑将它们移动到沙箱中的永久文件夹中,以免被您或iOS意外删除。在这种情况下,我会为图像创建一个特定的文件夹,并在每个应用程序启动时扫描此文件夹,以确定可用的图像。