4

我想从照片库中复制一张图片,但我想在以后检查我是否已经导入了这张图片。

想象一下这个场景。

  1. 我的照片库中有一张照片。
  2. 我通过制作它的副本将其导入我的应用程序。
  3. 我从我的照片库中删除了这张照片。
  4. 稍后我将这张照片重新插入我的照片库(来自 iPhoto 的同一张照片,只是之前没有同步它的相册,我现在有了)

是否有可以用来比较两张图片的唯一标识符?URL 是唯一的吗?还是我必须查看元数据并尝试匹配它?如果是这样,你有什么建议?创建数据和位置?刚刚创建日期?尺寸?

谢谢你的建议。

4

1 回答 1

3

观察

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

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

解决方案

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

我希望这个信息帮助。让我知道我是否遗漏了任何内容,或者您​​在工作中发现了不同的结果。

于 2012-08-24T15:30:58.313 回答