ALAsset唯一标识符

时间:2012-05-28 14:18:04

标签: ios alassetslibrary alasset

我想复制照片库中的图像,但如果我已导入此图像,我想在将来检查。

想象一下这种情况。

  1. 我的照片库中有一张照片。
  2. 我通过复制它在我的应用程序中导入它。
  3. 我从我的图书馆中删除了这张照片。
  4. 稍后我将这张照片重新插入我的照片库(来自iPhoto的相同照片,之前我没有同步它的相册)
  5. 是否有可用于比较两张照片的唯一标识符? URL是唯一的吗? 或者我是否必须查看元数据并尝试匹配它? 如果是这样,你会建议什么?创建数据和位置?刚创建日期?尺寸?

    感谢您的建议。

1 个答案:

答案 0 :(得分:3)

<强>观察

我一直在使用类似的功能,所以这就是我所知道的:

  • 插入照片库的每张照片都会有一个唯一的网址(这意味着如果您插入图片,删除它,然后重新插入,即使它是相同的图片,它也会有一个新网址。)
  • 没有直接的方法可以知道图像是否与之前的图像重复。
  • 我认为您不会尝试这样做,但我会警告您,您无法以编程方式从iPhone照片库中删除图像。

<强>解决方案

我真的只有一种处理方法:创建照片的哈希值并将哈希值存储在某处。如果插入的照片与之前的照片完全相同,则应该为您提供相同的哈希值。您可以使用该哈希比较来确定您是否使用相同的照片。这是我正在使用的方法,它似乎在大多数情况下可靠地工作。我注意到了一些差异,但这些通常涉及我的工作在将文件添加到照片库之前对文件进行散列(我注意到保存的照片可能与正在保存的照片不同)。

我希望这些信息有所帮助。如果我错过了任何内容,或者您​​在工作中发现了不同的结果,请告诉我。